【问题标题】:Actions for creating venv in python and clone a git repo在 python 中创建 venv 并克隆 git repo 的操作
【发布时间】:2020-06-28 08:26:06
【问题描述】:

我在所有这些方面都比较新,我对操作的行有疑问。假设您创建了一个目录,并且您想要一个用于某个项目的 python 虚拟环境并克隆一些 git 存储库(例如,来自 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 存储库,或者您需要在另一个文件夹中 cd。为了让python venv获取克隆的repos就够了,还是在你的目录下克隆repos后必须安装venv?

【问题讨论】:

    标签: pip3 python git github


    【解决方案1】:

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

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

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

    这个问题的解决方案是创建一个虚拟环境,一个独立的目录树,其中包含特定版本 Python 的 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 中安装的所有依赖项都将不可用。

    【讨论】:

    • 感谢您的回复。当你想回到你的虚拟环境?你如何激活它?您的环境的“状态”是否与您停用前一样?
    • 在答案中添加了 cmets。
    • 不幸的是,我不能赞成您的回答,但会 +1 :)。欢呼
    • 很高兴为您提供帮助。
    • 最后一个问题。当您停用您的 venv 并想再次激活它以继续您的项目时,您是否重复第 4 步?
    猜你喜欢
    • 2022-11-02
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    相关资源
    最近更新 更多