gpt4 book ai didi

python - 这个答案中的 "revirtual"是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:52:46 24 4
gpt4 key购买 nike

在这个关于 S/O 的问题中:

Can existing virtualenv be upgraded gracefully?

接受的答案说你可以:

use the Python 2.6 virtualenv to "revirtual" the existing directory

我似乎无法找到关于如何“重新虚拟”现有 virtualenv 的任何细节。我知道如何手动安装 python,但我正在寻找在特定 virtualenv 中升级 python 的“python/virtualenv”方式。

在我非常特殊的情况下,我已经代替其他人成为管理员。系统 python 是 2.6.6,但是 virtualenvs 在 vi​​rtualenv 路径中都使用 2.7.4,类似于:

/home/user_name/.virtualenvs/application_name/bin/python2.7

虽然系统中没有python 2.7.x。我找不到任何手动安装 python 的证据,也找不到任何关于使用 pip 或使用 apt-get/yum 或任何在 virtualenv 中安装不同版本的 python 的在线详细信息。

所以,我非常具体的问题是:

  1. 如何“重新虚拟”一个 virtualenv?
  2. 如何以“python”方式在 virtualenv 中升级 python?
  3. 是否有其他方法可以在 virtualenvs 中管理 python 版本?

谢谢,如果我能以任何方式澄清我的问题,请告诉我!

-S

最佳答案

通常的警告:首先制作备份副本。但是,virtualenv 创建的结构并没有那么复杂,所以应该可以找到您需要的东西或创建一个新的并迁移。 ~/.virtualenvs 的路径这意味着它可能是用 virtualenvwrapper 创建的这样您也可以阅读相关内容。

virtualenv复制 bin 中的可执行文件目录,这意味着它们不必存在于其他地方。在libincludes目录,但是,默认情况下会有指向“源”python 项目的符号链接(symbolic link)(除非有人更改了该设置)。你可以做一个 ls -l在这些目录中,也许您会找到 python 2.7 的安装位置 - 或者可能是一些损坏的符号链接(symbolic link)。

lib应该是一个或多个 python-<version>目录,有一些符号链接(symbolic link)(可能)到 python 标准库的东西和一个 site-packages目录,这是您安装的软件包所在的位置。

现在,升级。如果您尝试“就地”更新 virtualenv(即您刚刚运行 virtualenv --python==python<version> <existing-directory> ),那么您可能会遇到两个问题:(1) bin/python符号链接(symbolic link)不会被替换,除非您删除/移动它,并且 (2) lib 下的目录是每个 python 版本,所以如果你不使用 2.7 那么 site-packages目录不会自动转移——你必须重新安装包,或者进入并移动它,这将可能工作,除非你已经编译了二进制扩展,或者正在迁移到 3.x,或者发生其他奇怪的事情。

另一种更简洁的方法是创建一个全新的 virtualenv,然后重新安装必要的包。首先找到您自己的应用程序包并确定它们是否有 setup.py有效或只是位于目录中的代码。如果他们没有 setup.py正确引入所有依赖项,然后在现有的 virtualenv 文件夹中运行 ./bin/pip freeze获取已安装软件包的列表。您可以将其保存到文件中并使用 pip install -r <filename>稍后再说。

关于python - 这个答案中的 "revirtual"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25291272/

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