gpt4 book ai didi

python-3.x - Virtualenv 和 libpython

转载 作者:行者123 更新时间:2023-12-01 08:40:33 24 4
gpt4 key购买 nike

我正在运行 arch,在我之前设置的一个项目中,我使用 virtualenv 设置了一个小 python 沙箱。此时,我的机器上的默认 python 版本是 3.2 它已经升级到 3.3,但是当我进入我的(现在旧的)virtualenv 并尝试运行 python 时,我收到错误:

python: error while loading shared libraries: libpython3.2mu.so.1.0: cannot open shared object file: No such file or directory

这是我可以解决的问题,以便将来如果/当我升级我的 python 时,我最终不会丢失旧的 virtualenv 需要的库?

最佳答案

Virtualenvs 直接依赖于创建它们的 python 运行时,因此当您删除运行时,virtualenv 也会停止工作。

解决方法是使用pipenv而不是 virutalenv包,因为它在名为 的文件中包含您项目的所有依赖项。 pipfile 在顶级文件夹中。 Arch Linux 中有一个 pipenv 包 here .对于独立的 python 安装,可以使用 pip3 install pipenv 轻松安装。 .

每当 Python 被替换(或在您的情况下升级)时,您必须使用 pipenv --rm 删除以前的 virtualenv|在环境所在的目录中。但是升级Python后,必须手动编辑Pipfile才能删除python_version = "3.7" (或任何版本)来自文件的行,因为这会导致 pipenv shellpython3删除旧环境后,其中的调用将失败。

请注意,在此方法中,virtualenv 仍与您运行的 Python 版本相关联 pipenv shell反对。如果同时安装另一个python版本,请为其安装pipenv包并尝试运行pipenv shell ,它将使用 python 运行时和它创建的 virtualenv(第一个 python 运行时)。

我通过在 Cloud9 上构建 Python 3.7 运行时来测试所有这些,并为它获得了 pipenv。然后我删除了它,并在同一个安装目录中使用 pipenv 构建了一个 Python 3.5 运行时。然后我也删除了它并类似地构建了 Python 3.8。最后,我安装了 Python 3.7 和 3.8,两者都带有 pipenv。

关于python-3.x - Virtualenv 和 libpython,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13105256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com