【问题标题】:How to maintain a Python project made with venv in version control如何在版本控制中维护使用 venv 制作的 Python 项目
【发布时间】:2020-05-23 11:53:14
【问题描述】:

作为一个Python3新手,我利用venv创建了一个项目,创建的项目目录结构是这样的:

  • bin
  • 包括
  • lib64(链接到 lib)
  • penv.cfg
  • 分享

下一步是将此项目存储到版本控制系统中,例如git。作为从事 maven 项目的 Java 程序员,将pom.xml 存储到版本控制中就足够了。所以我觉得把这些子目录都存到版本控制里有点不值得

问题:我应该将所有这些文件存储到版本控制中吗?如果没有,哪些存储在版本控制中?

【问题讨论】:

  • pipenvPipfile{,.lock} 是为了尝试解决这个问题而创建的。
  • 非常感谢您的提示 :) 我看了一个关于 pipenv 的 Youtube 教程。有Pipfile,所以Pipfile就像maven项目中的pom.xml一样可以保存到版本控制中?至少在我看来,它看起来像这样

标签: python python-3.x version-control python-venv


【解决方案1】:

没有必要将它们存储在.git 中,例如,如果有人想拥有与您相同的环境,您只需确保他们获得相同的requirements.txt 文件(由 Python 数据包管理器安装的包pip)

底线是在 gitignore 中抛出虚拟环境,并且只拥有由 pip freeze >> requirements.txt 生成的 requirements 文件(你可以命名任何你想要的名称,但命名为 requirements 是一种约定。

【讨论】:

  • 顺便说一句,我检查了生成的requirements.txt。 Python 版本未在此处列出。那么纯venv,是否有可能在某个地方获得Python版本?
  • 不,你不能在 requirements.txt 中拥有 python 版本,因为 pip 没有安装 Python。唯一可以放置 Python 版本的直观位置是 README.md
  • 我刚才看了生成的pyvenv.cfg。那里有python版本,我用Pycharm打开了生成的项目,似乎Pycharm能够通过pyvenv.cfg识别Python版本。是这样吗?
  • 那么有必要将pyvenv.cfg存储到版本控制中吗?
  • 不,只是不需要存储它,任何与虚拟环境相关的东西都应该在版本控制中被忽略。 Python 版本应在说明中注明,项目应具有正确的依赖项列表 (requirements.txt)。这样每个人都可以走在正确的轨道上。
猜你喜欢
  • 2010-10-11
  • 2016-01-27
  • 2016-06-11
  • 2010-11-20
  • 1970-01-01
  • 2020-05-12
  • 2012-08-30
  • 2021-03-25
  • 1970-01-01
相关资源
最近更新 更多