python:我应该将 virtualenv 代码检查到 git 中吗?

Posted

技术标签:

【中文标题】python:我应该将 virtualenv 代码检查到 git 中吗?【英文标题】:python: should I check the virtualenv code into git? 【发布时间】:2015-08-31 01:12:32 【问题描述】:

所以我正在使用 virtualenv 开发一个烧瓶应用程序。我有一棵这样的树:

./app - view, model, etc
./flask - virtualenv

显然app 是由 git 管理的。我的问题是:我应该对flask 做同样的事情吗?

【问题讨论】:

理想情况下,您将项目的需求保存到您添加到版本控制的 requirements.txt 文件中。您可以使用 pip freeze > requirements.txt 做到这一点。这样您就不会将大包签入到版本控制中。 我不建议使用pip freeze。它输出已安装的包,也许其中一些我们根本不使用;其中一些将由其他软件包安装(如果要安装flask,将安装jinja2),因此不必全部包含。 @lord63.j 我通常为其他开发人员包含一个requirements.txt(即包括pylintSphinx之类的东西),但指定包最终用户需要installtest,在setup.py。如果您在 virtualenv 中开发,pip freeze 将只是您用于该项目的包,这让生活更轻松。 @jonrsharpe pip freeze 输出已安装的软件包。如果我们使用libA然后我们改用libB,除非你卸载libA,否则会在requirements.txt;一些我们只是想尝试的包怎么样,比如我们尝试了nose然后找到pytest,最后使用pytest。所以,我的意思是使用pip freeze 可能包含一些不必要的包。 @lord63.j 确实如此,但这只是让您的 virtualenv 与您实际使用的内容保持同步,如果它仅适用于其他开发人员,这没什么大不了的如果有一些他们并不真正需要的包。 【参考方案1】:

不,您不会将任何可以轻松生成的内容放入存储库中。并且 virtualenvs 与您的系统相关联;你不能在另一个上重复使用它。

存储requirements.txt 文件和说明如何在 git 中创建 virtualenv 的 README,每次需要在新机器上进行开发设置时,从头开始创建 virtualenv。

【讨论】:

以上是关于python:我应该将 virtualenv 代码检查到 git 中吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 virtualenv 中的 python 脚本运行 Tensorboard?

在virtualenv中使用不同的Python版本

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

我可以将 Python windows 包安装到 virtualenvs 中吗?

我可以将 Python windows 包安装到 virtualenvs 中吗?

如何将Python virtualenv移至其他系统(计算机)并使用站点软件包中的软件包