Cal*_*son
5
python
deployment
python-3.2
我对目前部署Python代码的方式不满意,我想知道是否有更好的方法.首先我会解释我在做什么,然后是缺点:
- 当我开发时,我使用virtualenv进行依赖隔离并使用pip安装所有库.Python本身来自我的操作系统(Ubuntu)
- 然后我将我的代码构建成一个".deb"debian包,其中包含我的源代码树和我的依赖项的pip包
- 然后当我部署时,我重建virtualenv环境,源foo/bin/activate然后运行我的程序(在Ubuntu的新手下)
以下是问题:
- pip包非常大,并且显着增加了debian包的大小.这不是什么大不了的事,但这很烦人.
- 我每次部署时都必须构建所有的C库(PyMongo,BCrypt等).这需要一点时间(几分钟),在生产中执行这个CPU绑定工作有点蹩脚
这是我的约束:
- 必须适用于Python 3.最好是3.2
- 必须具有依赖性隔离
- 必须使用使用C的库(如PyMongo)
我听说过有关冻结的事情,但我无法让它发挥作用.Pypi中的cx_freeze似乎没有编译(至少在我的Python上).其他冻结实用程序似乎不适用于Python 3.我怎样才能更好地做到这一点?