python 中的包装科学项目
packaging scientific project in python
我正在尝试为 python 中的应用构建一个包。它使用 sklearn
、pandas
、numpy
、boto
和 anaconda
中的一些其他科学模块。由于对 python 包装经验不足,我有很多问题:
1- 我的项目中有一些机密文件 .py
,我不希望任何人看到这些文件。在 java 中我会定义私有文件和 类 但我完全迷失在 python 中。什么是"good practice"来处理这些私有模块?谁能link给我一些教程?
2- 打包我的应用程序的最佳方式是什么?我不想在 Pypi
上发布任何内容,我只需要它在 Google App 引擎上执行,例如。我尝试了一个带有 PyInstaller
的独立包,但我无法完成它,因为 numpy
和其他 scipy
包使它变得困难。有没有一种简单的方法可以以私有方式打包 python 用 anaconda
制作的项目?
3- 由于我想在不久的将来构建更多的应用程序,我是否应该尝试制作子包以便将它们用于其他应用程序?
如果是内部内容,约定是以单下划线开头 _
。请注意,这是一个约定。如果有人真的想使用它,他们仍然可以。您的代码并非严格保密。
看看http://python-packaging-user-guide.readthedocs.org/en/latest/。您无需发布到 pypi 即可创建使用 pip
等工具的 Python 包。您可以使用 setup.py
文件和 requirements.txt
文件创建一个项目,然后使用 pip
从任何地方安装您的包(例如,本地目录或 github).如果您采用这种方法,那么 pip 将安装您列出的所有依赖项。
如果您想重复使用您的包,只需将其包含在 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
。
我正在尝试为 python 中的应用构建一个包。它使用 sklearn
、pandas
、numpy
、boto
和 anaconda
中的一些其他科学模块。由于对 python 包装经验不足,我有很多问题:
1- 我的项目中有一些机密文件 .py
,我不希望任何人看到这些文件。在 java 中我会定义私有文件和 类 但我完全迷失在 python 中。什么是"good practice"来处理这些私有模块?谁能link给我一些教程?
2- 打包我的应用程序的最佳方式是什么?我不想在 Pypi
上发布任何内容,我只需要它在 Google App 引擎上执行,例如。我尝试了一个带有 PyInstaller
的独立包,但我无法完成它,因为 numpy
和其他 scipy
包使它变得困难。有没有一种简单的方法可以以私有方式打包 python 用 anaconda
制作的项目?
3- 由于我想在不久的将来构建更多的应用程序,我是否应该尝试制作子包以便将它们用于其他应用程序?
如果是内部内容,约定是以单下划线开头
_
。请注意,这是一个约定。如果有人真的想使用它,他们仍然可以。您的代码并非严格保密。看看http://python-packaging-user-guide.readthedocs.org/en/latest/。您无需发布到 pypi 即可创建使用
pip
等工具的 Python 包。您可以使用setup.py
文件和requirements.txt
文件创建一个项目,然后使用pip
从任何地方安装您的包(例如,本地目录或 github).如果您采用这种方法,那么 pip 将安装您列出的所有依赖项。如果您想重复使用您的包,只需将其包含在
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
。