为什么我不应该将virtualenv推送到Heroku?

Jam*_*her 3 python git django heroku virtualenv

在线教程告诉我把venv我的.gitignore文件。我为什么不希望推送我的虚拟环境,以便我或其他开发人员可以轻松地将项目拉到本地,并方便地拥有所有依赖项?

Oth*_*man 5

virtualenv是用于创建隔离的Python环境的工具。

Heroku为您提供了一个环境,您可以使用Heroku Django应用程序所需的requirements.txt安装软件包。

如果要与其他开发人员共享这些依赖关系,请使用github的另一个远程目录。并推动你的requirements.txt

然后告诉您的开发人员使用此文件安装软件包。

requirements.txt

Django==1.3
Fabric==1.2.0
Jinja2==2.5.5
PyYAML==3.09
Run Code Online (Sandbox Code Playgroud)

要一次安装这些软件包,请使用:

pip install -r /path/to/requirements.txt

而且,当您在本地计算机上运行该应用程序时,虚拟环境文件可能会更改,这将使无用的东西推送到您的存储库中。

注意:如果您想知道虚拟环境中安装了哪些软件包,请使用 pip freeze

如果要导出软件包以requirements.txt运行

pip freeze > requirements.txt


knb*_*nbk 5

除了Othman所说的之外,virtualenvs根本不可移植。尝试移动它会破坏它,并且创建新环境比修复它容易。因此,即使在使用虚拟环境的部署平台上,也无法将其检入git。