python 中的包装科学项目

packaging scientific project in python

我正在尝试为 python 中的应用构建一个包。它使用 sklearnpandasnumpybotoanaconda 中的一些其他科​​学模块。由于对 python 包装经验不足,我有很多问题:

1- 我的项目中有一些机密文件 .py,我不希望任何人看到这些文件。在 java 中我会定义私有文件和 类 但我完全迷失在 python 中。什么是"good practice"来处理这些私有模块?谁能link给我一些教程?

2- 打包我的应用程序的最佳方式是什么?我不想在 Pypi 上发布任何内容,我只需要它在 Google App 引擎上执行,例如。我尝试了一个带有 PyInstaller 的独立包,但我无法完成它,因为 numpy 和其他 scipy 包使它变得困难。有没有一种简单的方法可以以私有方式打包 python 用 anaconda 制作的项目?

3- 由于我想在不久的将来构建更多的应用程序,我是否应该尝试制作子包以便将它们用于其他应用程序?

  1. 如果是内部内容,约定是以单下划线开头 _。请注意,这是一个约定。如果有人真的想使用它,他们仍然可以。您的代码并非严格保密。

  2. 看看http://python-packaging-user-guide.readthedocs.org/en/latest/。您无需发布到 pypi 即可创建使用 pip 等工具的 Python 包。您可以使用 setup.py 文件和 requirements.txt 文件创建一个项目,然后使用 pip 从任何地方安装您的包(例如,本地目录或 github).如果您采用这种方法,那么 pip 将安装您列出的所有依赖项。

  3. 如果您想重复使用您的包,只需将其包含在 requirements.txt 中,并将 install_requires 参数包含在 setup.py 中(参见 http://python-packaging-user-guide.readthedocs.org/en/latest/requirements/)。例如,如果您使用 pip install https://github/myname/mypackage.git 安装包,那么您可以在以后的项目中的 requirements.txt 文件中包含 https://github/myname/mypackage.git