Python 在virtualenv中安装pip时导入错误

Python 在virtualenv中安装pip时导入错误,python,python-2.7,installation,pip,virtualenv,Python,Python 2.7,Installation,Pip,Virtualenv,我有一台rhel机器,上面安装了python2.6。我一直在尝试另一种python2.7安装方式,并为使用2.7设置了一个virtualenv。我从以下来源通过构建安装了python2.7: ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" make && make altinstall virtualenv -p

我有一台rhel机器,上面安装了python2.6。我一直在尝试另一种python2.7安装方式,并为使用2.7设置了一个virtualenv。我从以下来源通过构建安装了python2.7:

./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" 
make && make altinstall
virtualenv -p python2.7 --no-setuptools py27
. py27/bin/activate
我已经在系统上安装了virtualenv,因此我使用它为2.7创建了一个venv,如下所示:

./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" 
make && make altinstall
virtualenv -p python2.7 --no-setuptools py27
. py27/bin/activate
现在,当我尝试在venv内安装pip时,它失败如下:

python get-pip.py
Traceback (most recent call last):
File "get-pip.py", line 19857, in <module>
  main()
File "get-pip.py", line 151, in main
  bootstrap(tmpdir=tmpdir)
File "get-pip.py", line 81, in bootstrap
  import pip
File "/tmp/tmpArPs31/pip.zip/pip/__init__.py", line 15, in <module>
File "/tmp/tmpArPs31/pip.zip/pip/vcs/mercurial.py", line 11, in <module>
File "/tmp/tmpArPs31/pip.zip/pip/download.py", line 29, in <module>
File "/tmp/tmpArPs31/pip.zip/pip/_vendor/__init__.py", line 81, in load_module
ImportError: No module named 'pip._vendor.requests'
python get-pip.py
回溯(最近一次呼叫最后一次):
文件“get pip.py”,第19857行,在
main()
文件“getpip.py”,第151行,在main中
引导(tmpdir=tmpdir)
bootstrap中第81行的文件“get pip.py”
进口pip
文件“/tmp/tmpArPs31/pip.zip/pip/_init__.py”,第15行,在
文件“/tmp/tmpArPs31/pip.zip/pip/vcs/mercurial.py”,第11行,在
文件“/tmp/tmpArPs31/pip.zip/pip/download.py”,第29行,在
文件“/tmp/tmpArPs31/pip.zip/pip/\u vendor/\u init\u.py”,第81行,在加载模块中
ImportError:没有名为“pip.\u供应商请求”的模块
我不知道这里出了什么问题。请帮忙

我已经安装了python 2.7.8

编辑:我最初尝试在没有--no setuptools选项的情况下创建virtualenv,但出现了相同的错误:

virtualenv -p python2.7 py27_with_pip
Running virtualenv with interpreter /usr/local/bin/python2.7
New python executable in py27_with_pip/bin/python2.7
Also creating executable in py27_with_pip/bin/python
Installing setuptools, pip...
  Complete output from command /data1/home/sagraw1/...th_pip/bin/python2.7 -c "import sys, pip;     sys...d\"] + sys.argv[1:]))" setuptools pip:
  Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/virtualenv-12.0-py2.6.egg/virtualenv_support/pip-6.0-    py2.py3-none-any.whl/pip/__init__.py", line 15, in <module>
  File "/usr/lib/python2.6/site-packages/virtualenv-12.0-py2.6.egg/virtualenv_support/pip-6.0-py2.py3-none-any.whl/pip/vcs/mercurial.py", line 11, in <module>
  File "/usr/lib/python2.6/site-packages/virtualenv-12.0-py2.6.egg/virtualenv_support/pip-6.0-py2.py3-none-any.whl/pip/download.py", line 29, in <module>
  File "/usr/lib/python2.6/site-packages/virtualenv-12.0-py2.6.egg/virtualenv_support/pip-6.0-py2.py3-none-any.whl/pip/_vendor/__init__.py", line 81, in load_module
ImportError: No module named 'pip._vendor.requests'
----------------------------------------
...Installing setuptools, pip...done.
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/virtualenv-12.0-py2.6.egg/virtualenv.py", line 2363, in <module>
    main()
  File "/usr/lib/python2.6/site-packages/virtualenv-12.0-py2.6.egg/virtualenv.py", line 848, in main
symlink=options.symlink)
  File "/usr/lib/python2.6/site-packages/virtualenv-12.0-py2.6.egg/virtualenv.py", line 1016, in create_environment
    install_wheel(to_install, py_executable, search_dirs)
  File "/usr/lib/python2.6/site-packages/virtualenv-12.0-py2.6.egg/virtualenv.py", line 984, in install_wheel
    'PIP_NO_INDEX': '1'
  File "/usr/lib/python2.6/site-packages/virtualenv-12.0-py2.6.egg/virtualenv.py", line 926, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /data1/home/sagraw1/...th_pip/bin/python2.7 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 1
virtualenv-p python2.7 py27
使用解释器/usr/local/bin/python2.7运行virtualenv
py27_中新的python可执行文件,带有_pip/bin/python2.7
还可以使用pip/bin/python在py27_中创建可执行文件
正在安装安装工具,pip。。。
从命令/data1/home/sagraw1/…th_pip/bin/python2.7-c“import sys,pip;sys…d\”]+sys.argv[1:)”setuptools pip完成输出:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python2.6/site-packages/virtualenv-12.0-py2.6.egg/virtualenv_-support/pip-6.0-py2.py3-none-any.whl/pip/_u-init____;.py”,第15行
文件“/usr/lib/python2.6/site packages/virtualenv-12.0-py2.6.egg/virtualenv_support/pip-6.0-py2.py3 none any.whl/pip/vcs/mercurial.py”,第11行
文件“/usr/lib/python2.6/site packages/virtualenv-12.0-py2.6.egg/virtualenv_support/pip-6.0-py2.py3 none any.whl/pip/download.py”,第29行
文件“/usr/lib/python2.6/site packages/virtualenv-12.0-py2.6.egg/virtualenv\u support/pip-6.0-py2.py3 none any.whl/pip/\u vendor/\u init\uuuuu.py”,第81行,加载模块中
ImportError:没有名为“pip.\u供应商请求”的模块
----------------------------------------
…安装setuptools,pip…完成。
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python2.6/site packages/virtualenv-12.0-py2.6.egg/virtualenv.py”,第2363行,中
main()
文件“/usr/lib/python2.6/site packages/virtualenv-12.0-py2.6.egg/virtualenv.py”,第848行,主目录
symlink=options.symlink)
文件“/usr/lib/python2.6/site packages/virtualenv-12.0-py2.6.egg/virtualenv.py”,第1016行,在create_环境中
安装控制盘(要安装,可执行,搜索目录)
文件“/usr/lib/python2.6/site packages/virtualenv-12.0-py2.6.egg/virtualenv.py”,第984行,在安装盘中
“PIP编号索引”:“1”
call_子流程中的文件“/usr/lib/python2.6/site packages/virtualenv-12.0-py2.6.egg/virtualenv.py”,第926行
%(指令描述,程序返回代码))
OSError:Command/data1/home/sagraw1/…th_pip/bin/python2.7-c“import sys,pip;sys…d\“]+sys.argv[1:])“setuptools pip失败,错误代码为1
我尝试直接用python2.7安装pip,但即使这样也不起作用:

python2.7 get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 19857, in <module>
    main()
  File "get-pip.py", line 151, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 81, in bootstrap
    import pip
  File "/tmp/tmpPSVEkk/pip.zip/pip/__init__.py", line 15, in <module>
  File "/tmp/tmpPSVEkk/pip.zip/pip/vcs/mercurial.py", line 11, in <module>
  File "/tmp/tmpPSVEkk/pip.zip/pip/download.py", line 29, in <module>
  File "/tmp/tmpPSVEkk/pip.zip/pip/_vendor/__init__.py", line 81, in load_module
ImportError: No module named 'pip._vendor.requests'
python2.7 get-pip.py
回溯(最近一次呼叫最后一次):
文件“get pip.py”,第19857行,在
main()
文件“getpip.py”,第151行,在main中
引导(tmpdir=tmpdir)
bootstrap中第81行的文件“get pip.py”
进口pip
文件“/tmp/tmpPSVEkk/pip.zip/pip/_init__.py”,第15行,在
文件“/tmp/tmpPSVEkk/pip.zip/pip/vcs/mercurial.py”,第11行,在
文件“/tmp/tmpPSVEkk/pip.zip/pip/download.py”,第29行,在
文件“/tmp/tmpPSVEkk/pip.zip/pip/\u vendor/\uuuuu init\uuuuuuuuu.py”,第81行,在加载模块中
ImportError:没有名为“pip.\u供应商请求”的模块

我的处境与你的相似,我最终找到了解决办法。至少在我的例子中,根本问题是当我编译Python2.7.8时,构建过程没有找到合适的OpenSSL库(因为它们没有安装在我的系统上)。make完成运行后,会显示类似以下内容的摘要:

Failed to find the necessary bits to build these modules:
_bsddb             _curses            _curses_panel
_hashlib           _sqlite3           _ssl
这并不妨碍makeinstall的工作,在这之后,Python就可以正常工作了,只是它不能访问https-url和其他相关功能。您可以通过启动python,然后键入

导入ssl

如果看到导入错误,则ssl模块丢失。否则,您将看不到任何消息

我通过运行(以root用户身份)安装OpenSSL库修复了此问题:

yum安装openssl-devel

在这一切就绪之后,我用make重新构建了Python(现在没有将ssl列为缺失),然后是make安装。在此之后,运行get-pip.py工作顺利。
希望这有帮助

如果您使用的是最新的2.7版本,那么快速解决方法应该是使用
python-m ensurepip
。直接调用python2.7,即:
python2.7 get pip.py
,您能详细说明一下为什么要使用
——无设置工具吗?这将禁止安装
setuptools
pip
。这很公平,但是为什么之后你要尝试引导
pip
?@cel我在没有设置工具的情况下尝试过——最初没有设置工具,但是在创建virtualenv时,同样的错误出现了。我已经用相关的输出编辑了这个问题。@user590028也试过了,但不起作用。请参见问题中的编辑。是。我的问题和你的完全一样。我忽略了make summary,继续安装。尽管我最终按照cel在上述评论中的建议安装了Python2.7.9,但我非常确定,一旦安装了ssl库,我的Python2.7.8也能正常工作。无论如何,将您的答案标记为问题的正确解决方案。对于osx用户来说,处理此问题的方法是