【问题标题】:How to create a Python virtual environment independent of OS and Python version如何创建独立于 OS 和 Python 版本的 Python 虚拟环境
【发布时间】:2021-04-02 09:59:00
【问题描述】:

我正在尝试创建一个虚拟环境来运行需要 Python 3.6 的脚本。我从 Pipenv 开始,但我无法通过 Pipfile.lock 或 requirements.txt 在其他平台上创建相同的环境,除非其他平台安装了 Python 3.6。我已阅读this post,但我不确定应该采取哪个方向来创建一个虚拟环境,该环境可以共享并运行自己的 Python 版本,独立于操作系统和安装在其他平台上的 Python 版本。

【问题讨论】:

  • 虚拟环境必须链接到预先存在的 Python。如果您没有安装 3.6,则需要先安装它,创建虚拟环境之前。
  • 感谢您澄清这一点。如果我需要在目标平台上安装特定的 python 版本,我很可能不得不使用其他解决方案,因为我没有访问权限来更改该计算机上的任何内容。

标签: python virtualenv pipenv pyenv


【解决方案1】:

虚拟环境不可移植,它们取决于您拥有的 Python 安装。

您不能与其他人共享/分发虚拟环境,因为您无法控制其他人使用的 Python 版本。 如果您想分发您的代码以及所有依赖项,包括特定版本的 Python 解释器,您可以使用 PyInstaller。它远非完美,而且有点hacky。它还会生成一个特定于操作系统的包。

https://pyinstaller.readthedocs.io/en/stable/operating-mode.html

还有关于如何使用 PyInstaller 的详细分步指南。 https://realpython.com/pyinstaller-python/

【讨论】:

    【解决方案2】:

    这是我如何使用 Python 虚拟环境并与同事分享的分步操作。

    要检查 python 和 virtualenv 是否存在,请运行以下命令:

    which python3
    python3 -m pip list | grep env
    which virtualenv
    

    安装python虚拟环境生成器:

    python3 -m pip install virtualenv
    

    在项目目录中创建一个名为 venv 的虚拟环境:virtualenv venv

    要激活此环境,请在项目目录中使用此命令:source venv/bin/activate

    安装 requirements.txt 中列出的 python 模块依赖项:

    python3 -m pip install -r requirements.txt
    

    当您在此目录中使用 python 进行软件包安装和在项目目录中运行命令时,您应该激活虚拟环境。当您需要停用虚拟环境时,请使用deactivate 命令。

    要停用环境,只需运行:deactivate

    【讨论】:

    • 这类似于我使用 pipenv 的方式。我还使用了一个命令脚本来在 windows 和 linux 上运行。但是,我的新要求希望我能够独立于其他平台上的 python 版本来处理它。这可能意味着我寻求的解决方案不能仅由虚拟环境处理。谢谢。
    • @Russ1337 好吧,如果它必须独立于平台,在这种情况下,我只会想到 Docker。将所有内容包含在您定制的 Docker 映像中。但我不知道这样的解决方案是否有限制,您可能会使用它。
    猜你喜欢
    • 2017-12-30
    • 2020-10-21
    • 1970-01-01
    • 2020-01-15
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多