添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在Python中创建venv和克隆git repo的操作方法

11 人关注

我对这些都比较陌生,我对行动的排布有一个问题。假设你创建了一个目录,你想为某个项目创建一个python虚拟环境,并克隆了几个git repos(比如,从GitHub)。然后你在该目录中 cd ,使用 venv 模块(针对python3)创建一个虚拟环境。要做到这一点,你要运行以下命令。

     python3 -m venv my_venv

这将在你的目录中创建一个名为my_env的虚拟环境。为了激活这个环境,你可以运行以下程序。

     source ./my_env/bin/activate

如果在该目录中,你有一个requirements.txt文件,你可以运行。

     pip3 install -r ./requirements.txt

来安装你的各种依赖项和软件包,并使用.现在,这是我感到困惑的地方。如果你想克隆git repos,你到底在哪里做?在同一个目录下,你只需运行git clone就可以创建git repos,或者你需要在另一个目录下cd。为了让 python venv 拾取克隆的 repos,上述做法是否足够,还是必须在你的目录中克隆了 repos 之后再安装 venv?

python
git
github
user430191
user430191
发布于 2020-03-17
2 个回答
Yeheshuah
Yeheshuah
发布于 2022-04-07
已采纳
0 人赞同

首先,你需要了解什么是虚拟环境,当你了解了它的作用后,行动的顺序就会更加清晰。

Python 应用程序经常会使用不属于标准库的包和模块。应用程序有时会需要一个特定版本的库,因为应用程序可能需要一个特定的错误已经被修复,或者应用程序可能是用一个过时的库接口版本编写的。

这意味着一个 Python 安装可能无法满足每个应用程序的要求。如果应用程序 A 需要某个特定模块的 1.0 版本,但应用程序 B 需要 2.0 版本,那么这些要求就有冲突,安装 1.0 或 2.0 版本都会使一个应用程序无法运行。

这个问题的解决方案是创建一个虚拟环境,一个自成一体的目录树,它包含一个特定版本的Python安装,外加一些额外的软件包。

然后,不同的应用程序可以使用不同的虚拟环境。为了解决前面的需求冲突的例子,应用程序A可以有自己的虚拟环境,安装1.0版本,而应用程序B有另一个虚拟环境,安装2.0版本。如果应用程序B要求一个库升级到3.0版本,这将不会影响应用程序A的环境。

※ Reference: 12.虚拟环境和软件包

一般来说,以下顺序是最合适的。

  • $ git clone <Project A> # Cloning project repository
  • $ cd <Project A> # Enter to project directory
  • $ python3 -m venv my_venv # If not created, creating virtualenv
  • $ source ./my_venv/bin/activate # Activating virtualenv
  • (my_venv)$ pip3 install -r ./requirements.txt # Installing dependencies
  • (my_venv)$ deactivate # When you want to leave virtual environment
  •