在Python中创建venv和克隆git存储库的操作

13

我在这方面相对较新,并且在操作行中遇到了问题。 假设你创建了一个目录,并且想为某个项目创建Python虚拟环境并克隆一些Git存储库(例如从GitHub)。 然后,您会cd进入该目录,并使用venv模块(适用于python3)创建一个虚拟环境。要这样做,请运行以下命令:

     python3 -m venv my_venv

这将在您的目录中创建一个名为my_env的虚拟环境。要激活此环境,请运行以下命令。

将在您的目录中创建一个名为my_env的虚拟环境。要激活此环境,请运行以下命令。

     source ./my_env/bin/activate

如果在那个目录里面还有一个 requirements.txt 文件,你可以运行以下命令:

     pip3 install -r ./requirements.txt

使用 安装各种依赖项和软件包。现在我有些困惑了。如果您要克隆 git 存储库,应在哪里进行?在刚才运行 git clone 并创建 git 存储库的同一目录中,还是需要 cd 到另一个文件夹中?为了让 python venv 挑选克隆的存储库,上述步骤是否足够,或者必须在克隆存储库后安装 venv 到您的目录中?

3个回答

31

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

Python 应用程序经常使用不包含在标准库中的包和模块。应用程序有时需要特定版本的库,因为应用程序可能需要修复了特定 bug 的库版本或应用程序可能是使用过时库接口编写而成。

这意味着一个 Python 安装可能无法满足每个应用程序的需求。如果应用程序 A 需要特定模块的 1.0 版本,但应用程序 B 需要 2.0 版本,则两个版本的需求存在冲突,安装其中任一版本都会导致另一个应用程序无法运行。

解决这个问题的方法是创建一个虚拟环境,这是一个自包含的目录树,其中包含特定版本的 Python 安装以及许多附加的包。

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

※ 参考文献:12. 虚拟环境和包


通常,以下顺序是最合适的。

  1. $ git clone <项目A> # 克隆项目仓库
  2. $ cd <项目A> # 进入项目目录
  3. $ python3 -m venv my_venv # 如果未创建,则创建虚拟环境
  4. $ source ./my_venv/bin/activate # 激活虚拟环境
  5. (my_venv)$ pip3 install -r ./requirements.txt # 安装依赖项
  6. (my_venv)$ deactivate # 当你想离开虚拟环境时

在第5步安装的所有依赖项将在您退出虚拟环境后无法使用。


1
谢谢您的回复。您想何时返回虚拟环境?如何激活它?在您停用之前,您的环境状态是否与之前相同? - user430191
在答案中添加了注释。 - Yeheshuah
很高兴能帮助你。 - Yeheshuah
尝试玩一下激活、停用和弹出安装,看看它的行为如何。 - Yeheshuah
第四步+|有一个拼写错误:$ source ./my_env/bin/activate # 激活虚拟环境,它应该是:$ source ./my_venv/bin/activate # 激活虚拟环境,至少如果你想保持命名的一致性 :) - d_-
显示剩余3条评论

0

source ./my_venv/bin/activate # 激活虚拟环境

这里的 source 是什么意思?我们可以使用以下步骤吗?

my_venv/Scripts/activate.bat


1
目前你的回答不够清晰,请[编辑]以添加更多细节,帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

0
虚拟环境的创建可能会让人感到困惑:延续@Yeheshuah的回答,当创建和激活虚拟环境时,Unix系统和Windows系统之间存在差异。
除了第四步之外,所有步骤都是相同的。
在Linux/MacOS上激活:
在第二步将控制台导航到项目目录,并在第三步创建venv时,通过终端使用以下命令来激活它:
source ./my_venv/bin/activate

可以通过提供完整路径来从不同位置激活venv。
source <Project A>/my_venv/bin/activate

Windows激活

在Windows上,激活方式有所不同。以下步骤假设您已经导航到项目目录:

  1. 使用标准终端cmd.exe:输入命令.\env\Scripts\activate.bat以激活虚拟环境(venv)
  2. 使用powershell.exe:输入命令.\env\Scripts\Activate.ps1以激活虚拟环境(venv)

如果虚拟环境是使用conda安装的,则可以使用命令conda activate my_venv在任何位置通过powershell激活。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接