为啥我不应该将 virtualenv 推送到 Heroku?
Posted
技术标签:
【中文标题】为啥我不应该将 virtualenv 推送到 Heroku?【英文标题】:Why shouldn't I push a virtualenv to Heroku?为什么我不应该将 virtualenv 推送到 Heroku? 【发布时间】:2015-07-09 11:10:22 【问题描述】:在线教程告诉我将venv
放入我的.gitignore
文件中。为什么我不想推送我的虚拟环境,以便我或其他开发人员可以轻松地将项目拉到他们的本地并方便地拥有所有依赖项?
【问题讨论】:
【参考方案1】:除了 Othman 所说的之外,virtualenvs 根本就是不可移植的。试图移动它会破坏它,并且创建一个新环境比修复它更容易。因此,即使在使用虚拟环境的部署平台上,将它们签入 git 也无法正常工作。
【讨论】:
【参考方案2】: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
一次性安装这些软件包:
pip install -r /path/to/requirements.txt
此外,当您在本地计算机上运行应用程序时,虚拟环境文件可能会发生变化,这会使将无用的东西推送到您的存储库。
注意:如果您想知道虚拟环境中安装了哪些软件包,请使用pip freeze
如果你想将包导出到requirements.txt
然后运行
pip freeze > requirements.txt
【讨论】:
以上是关于为啥我不应该将 virtualenv 推送到 Heroku?的主要内容,如果未能解决你的问题,请参考以下文章