我正在尝试在python中为应用程序构建一个包。它使用sklearn
,pandas
,numpy
,boto
以及来自anaconda
的其他一些科学模块。由于对python包装非常缺乏经验,我有各种各样的问题:
1-我的项目中有一些机密文件.py
,我不希望任何人看到。在java中我会定义私有文件和类,但我完全迷失在python中。处理这些私有模块的“好习惯”是什么?任何人都可以链接我一些教程吗?
2-打包我的应用程序的最佳方法是什么?我不想在Pypi
上发布任何内容,我只需要它就可以在Google App引擎上执行。我尝试使用PyInstaller
的独立程序包,但由于numpy
和其他scipy
程序包使我很难,我无法完成它。是否有一种简单的方法来使用anaconda
?
3-由于我想在不久的将来构建更多应用程序,我是否应该尝试制作子包以便将其用于其他应用程序?
答案 0 :(得分:1)
如果内部存在某些内容,则约定是使用单个下划线_
。请注意,这是一个惯例。如果有人真的想要使用它,他们仍然可以。您的代码不是严格保密的。
看看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
安装软件包,则可以在将来的项目中将https://github/myname/mypackage.git
包含在requirements.txt
文件中。