gpt4 book ai didi

python - 处理python virtualenv中的几个包版本

转载 作者:行者123 更新时间:2023-12-05 07:58:13 30 4
gpt4 key购买 nike

我正在使用没有 root 权限的计算服务器,所以为了能够安装我想要的任何库,我创建了一个 virtualenv--system-site -packages 用于 python 2.6。

然后,在虚拟环境中,我安装了 numpy 版本 1.8.2,因为系统 numpy 版本(1.3.0)对于我的要求来说太旧了:

numpy - 1.3.0 - active development (/usr/lib64/python2.6/site-packages)

numpy - 1.8.2 - non-active

我需要 --system-site-packages 选项,因为我正在使用一些无法在虚拟环境中安装的系统库。但是我无法告诉虚拟环境使用最新版本的 numpy。

有谁知道如何在虚拟环境中选择1.8.2版本?我尝试使用 pkg_resources.require('numpy==1.8.2') 但出现错误:

pkg_resources.VersionConflict: (numpy 1.3.0 (/usr/lib64/python2.6/site-packages), Requirement.parse('numpy==1.8.2'))

在查看系统的 /usr/lib64 之前,是否有某种方式告诉虚拟环境在虚拟 virt2/lib64/python2.6/site-packages 文件夹中查找库/python2.6/site-packages 文件夹?

最佳答案

很有可能你被咬过issue #461目前(截至 2014 年 8 月)您无法升级任何系统继承的软件包,因为 virtualenv的路径在 sys.path 内的任何系统路径之后排序.

您的解决方法是将(通常)最后一个系统路径条目移动到上方一个位置:

  • 重新订购 sys.path使用 python 代码。例如,假设您的 virtualenv 的索引 site-packages是最后一个,您必须确保以下代码在任何其他代码之前运行:

    import sys; sys.path.insert(0, sys.path.pop(-1))
  • 类似地修改你的 PYTHONPATH 执行 python 解释器之前的环境变量(参见 question #10738919 和 )。

关于python - 处理python virtualenv中的几个包版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25380824/

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