在python中打包科学项目

时间:2015-10-22 21:07:12

标签: python numpy package private anaconda

我正在尝试在python中为应用程序构建一个包。它使用sklearnpandasnumpyboto以及来自anaconda的其他一些科学模块。由于对python包装非常缺乏经验,我有各种各样的问题:

1-我的项目中有一些机密文件.py,我不希望任何人看到。在java中我会定义私有文件和类,但我完全迷失在python中。处理这些私有模块的“好习惯”是什么?任何人都可以链接我一些教程吗?

2-打包我的应用程序的最佳方法是什么?我不想在Pypi上发布任何内容,我只需要它就可以在Google App引擎上执行。我尝试使用PyInstaller的独立程序包,但由于numpy和其他scipy程序包使我很难,我无法完成它。是否有一种简单的方法来使用anaconda

以私有方式打包python项目

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

1 个答案:

答案 0 :(得分:1)

  1. 如果内部存在某些内容,则约定是使用单个下划线_。请注意,这是一个惯例。如果有人真的想要使用它,他们仍然可以。您的代码不是严格保密的。

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

  3. 如果您想重复使用自己的软件包,只需将其包含在requirements.txtinstall_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文件中。