Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在pythonvirtualenv中处理几个包版本_Python_Numpy_Virtualenv - Fatal编程技术网

在pythonvirtualenv中处理几个包版本

在pythonvirtualenv中处理几个包版本,python,numpy,virtualenv,Python,Numpy,Virtualenv,我使用的计算服务器没有root权限,因此为了能够安装我想要的任何库,我为python 2.6创建了一个带有--系统站点包的virtualenv 然后,在虚拟环境中,我安装了numpy版本1.8.2,因为系统numpy版本(1.3.0)对于我的要求来说太旧了: numpy-1.3.0-主动开发(/usr/lib64/python2.6/site-packages) numpy-1.8.2-非活动 我需要--system site packages选项,因为我正在使用一些无法在虚拟环境中安装的系统库

我使用的计算服务器没有root权限,因此为了能够安装我想要的任何库,我为python 2.6创建了一个带有
--系统站点包的
virtualenv

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

numpy-1.3.0-主动开发(/usr/lib64/python2.6/site-packages)

numpy-1.8.2-非活动

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

有人知道如何在虚拟环境中选择1.8.2版吗?我尝试了
pkg\u资源。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/python2.6/site packages
文件夹之前,是否有某种方法可以告诉虚拟环境在virtual
virt2/lib64/python2.6/site packages
文件夹中查找库?

您可能已经被咬过,并且目前(截至2014年8月)您无法升级任何系统继承的包,因为
virtualenv
的路径排列在
sys.path
中的任何系统路径之后

您的解决方法是将(通常)最后一个sys path条目移到上方一个位置:

  • 使用python代码重新排序
    sys.path
    ,例如,假设virtualenv的
    站点包的索引是最后一个,您必须确保以下代码在任何其他代码之前运行:

    import sys; sys.path.insert(0, sys.path.pop(-1))
    
  • 在执行python解释器之前,类似地修改环境变量(请参见和)


可能使用pip,我不确定pkg_的资源,您到底是如何在VirtualNV中安装numpy的?您应该能够
~$pip安装-I numpy==1.8.2
(可能需要
-I
,以便告诉
pip
忽略已安装的系统范围的numpy)。在VirtualNV中调用
~$python-c“import numpy;print numpy.\uuuu version\uuuuuuu,numpy.\uuuu file\uuuuuu”
时会得到什么输出?