我正在尝试为python中的应用程序构建一个包。它采用anaconda
的sklearn
、pandas
、numpy
、boto
等科学模块。由于对python打包非常缺乏经验,我有各种各样的问题:
1-我有一些机密文件.py
在我的项目,我不想让任何人能够看到。在java中,我会定义私有文件和类,但我完全迷失在python中。处理这些私有模块的"良好实践"是什么?谁能给我链接一些教程?
2-打包应用程序的最佳方式是什么?我不想在Pypi
上发布任何东西,我只需要它在谷歌应用程序引擎上执行。我尝试了一个独立的PyInstaller
包,但我无法完成它,因为numpy
和其他scipy
包,这使得它很难。是否有一种简单的方法可以用anaconda
以私有方式打包python项目?
3-因为我想在不久的将来构建更多的应用程序,我是否应该尝试制作子包以便在其他应用程序中使用它们?
-
如果是内部内容,约定以单个下划线
_
开头。注意,这是一个约定。如果有人真的想用它,他们仍然可以。你的代码不是严格保密的 -
看看http://python-packaging-user-guide.readthedocs.org/en/latest/。创建使用
pip
等工具的Python包不需要发布到pypi。你可以用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
的包,那么你可以在将来的项目中将https://github/myname/mypackage.git
包含在requirements.txt
文件中。