【问题标题】:Is it a good idea to deploy self-made python modules into working environment by virtualenv?通过 virtualenv 将自制的 python 模块部署到工作环境中是一个好主意吗?
【发布时间】:2012-01-20 07:20:52
【问题描述】:

最近我正在努力改变我们内部 python 模块的部署。这些模块仅供内部使用。我们之前的部署是将所有模块放在某个地方(例如,/gozilla/pylib)并设置全局环境变量,PYTHONPATH 指向它。

我想知道在这种部署中使用 virtualenv 是否是个好主意?或者其他一些替代方法,特别是利用 setup.py 机制来进行自动单元测试、doc-gen、...?

更新

使用 PYTHONPATH 效果很好,只是我们必须自己复制粘贴进行部署,并且不支持单元测试、文档生成、模块-依赖...

为了使用 virtualenv 作为部署工具,其他(独立)python 脚本需要通过 source ...bin/activate 进入 virtual env 模式或通过在自己脚本的开头手动调用 execfile(activate_this, dict(_file_=activate_this))。对于每个 Python 脚本,是否可以防止这种通过 execfile 手动进入 virtualenv 模式?

这就是我现在得到的;)我正在寻找其他建议的方法来做到这一点。

【问题讨论】:

    标签: python


    【解决方案1】:

    是的,这是一个好主意,因为您获得了您已经提到的所有优势。

    我可以推荐使用 Paver(这使得 setuptools 可以很好地扩展),并且还将单元测试、Sphinx 等东西集成到构建过程中。

    关于 venv 的自动激活,如果您将“console_scripts”入口点添加到项目的设置中,那么 setuptools 将在任何受支持的目标平台上自动创建执行此操作的脚本存根。

    然后您可以编写一个安装程序脚本,使用预先构建的鸡蛋在目标机器上创建一个 virtualenv,或者将整个 venv 打包到一个 OS 包中(例如 .deb)。在不同的成熟阶段也有相应的工具。

    *) http://paver.github.com/paver/

    【讨论】:

    • 还在琢磨如何使用摊铺机 ;)
    猜你喜欢
    • 2015-12-10
    • 2012-05-12
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2020-03-29
    相关资源
    最近更新 更多