pip + virtualenv:如何正确安装自己的应用程序?

时间:2016-02-10 14:46:34

标签: python virtualenv

我有一个应用程序,我正在一台服务器上开发并在另一台服务器上运行它。我的问题是将此应用程序传输到目标服务器。

该应用程序主要包含一个带有子包的大包。还有一个小的启动脚本,一个示例配置文件和一个systemd .service文件。我添加了setup.pyMANIFEST.in个文件来创建标准的可安装包。

这是我目前的工作流程:

    开发服务器上的
    • 做一些工作
    • git push它到本地存储库
  1. 生产服务器上的
    • 激活虚拟环境
    • pip install --upgrade git+http://...
  2. 它完成了这项工作,但最近我读到了这个:Where in a virtualenv does *my* code go?。我担心我可能做错了。

    总的来说,我同意这个答案(缩短):

      

    virtualenv提供了一个python解释器实例,而不是一个应用程序实例。   ....   例如,您可能有一个多个项目   使用相同virtualenv的应用程序。

    现在,我希望能够在应用程序之间共享相同的虚拟环境。我想改变我的工作流程,但我不知道如何。

    我甚至不确定哪些应用程序文件应该保留在虚拟环境之外?我的整个应用程序或除了python包之外的所有东西,即脚本和配置文件?

    或者我应该仅将虚拟环境用于需求包,跳过pip并使用git checkout安装我的应用程序?

1 个答案:

答案 0 :(得分:0)

与此同时,我一直在寻找我的问题的答案。

我认为这是我误解的主要原因:如果目录包含__init.py__文件,则它是一个Python包。但这并不意味着它必须在setup.py中列为一个包。