在python中创建venv并克隆git存储库的操作

3qpi33ja  于 2023-09-29  发布在  Git
关注(0)|答案(3)|浏览(119)

我在这方面相对较新,我对这一系列的行动有问题。假设你创建了一个目录,你想为某个项目创建一个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

使用pip3安装各种依赖项和软件包。现在我有点糊涂了。如果你想克隆git仓库,你到底在哪里做?在同一个目录下,你只需要运行git clone并创建git仓库,或者你需要在另一个文件夹中运行cd。为了让python venv拾取克隆的repos,上面的就足够了,还是必须在你克隆了你目录中的repos之后再安装venv?

xmq68pz9

xmq68pz91#

首先,你需要了解什么是虚拟环境,当你了解了它是用来做什么的时候,动作的顺序就会更加清晰。
Python应用程序经常使用标准库中没有的包和模块。应用程序有时需要特定版本的库,因为应用程序可能需要修复特定的bug,或者可能使用过时版本的库接口来编写应用程序。
这意味着一个Python安装可能不可能满足每个应用程序的需求。如果应用程序A需要特定模块的版本1.0,而应用程序B需要版本2.0,那么需求就冲突了,安装版本1.0或版本2.0将使一个应用程序无法运行。
这个问题的解决方案是创建一个虚拟环境,一个自包含的目录树,其中包含特定版本的Python安装,以及一些附加的包。
不同的应用程序可以使用不同的虚拟环境。为了解决前面的冲突需求示例,应用程序A可以有自己的虚拟环境,安装了版本1.0,而应用程序B有另一个版本2.0的虚拟环境。如果应用程序B需要将库升级到3.0版,这不会影响应用程序A的环境。
※参考:12. Virtual Environments and Packages
一般来说,以下顺序是最合适的。

  1. $ git clone <Project A> # Cloning project repository
  2. $ cd <Project A> # Enter to project directory
  3. $ python3 -m venv my_venv # If not created, creating virtualenv
  4. $ source ./my_venv/bin/activate # Activating virtualenv
  5. (my_venv)$ pip3 install -r ./requirements.txt # Installing dependencies
  6. (my_venv)$ deactivate # When you want to leave virtual environment
    离开虚拟环境后,步骤5中安装的所有依赖项都将不可用。
deikduxw

deikduxw2#

source ./my_venv/bin/activate #激活virtualenv
你说的来源是什么意思我们可以使用如下步骤吗
my_venv/Scripts/activate.bat

7vhp5slm

7vhp5slm3#

虚拟环境创建可能会令人困惑:扩展@Yeheshuah的答案,在创建激活虚拟环境时,UNIX系统和Windows系统之间存在差异。
除步骤4外,所有步骤均相同。

在Linux/MacOS上激活

在步骤2中将控制台导航到在步骤3中创建venv的项目目录后,使用命令通过终端激活它

source ./my_venv/bin/activate

也可以通过提供整个路径从不同的位置激活venv:

source <Project A>/my_venv/bin/activate

在Windows上激活

在Windows上,激活是不同的。以下步骤假定您已导航到项目目录:
1.使用标准端子cmd.exe:键入命令.\env\Scripts\activate.bat以激活venv
1.使用powershell.exe:键入命令.\env\Scripts\Activate.ps1以激活venv
如果虚拟环境是用conda安装的,则可以使用命令conda activate my_venv从任何位置使用powershell激活它。

相关问题