2014-12-24 2 views
4

У меня есть машина rhel с установленным на ней python2.6. Я пытался иметь альтернативную установку python2.7 и настроить virtualenv для использования 2.7. Я установил python2.7, построив из источника следующим образом:ImportError при установке pip в virtualenv

./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" 
make && make altinstall 

я уже virtualenv установлен в системе, так что я использовал его, чтобы создать venv для 2.7 следующим образом:

virtualenv -p python2.7 --no-setuptools py27 
. py27/bin/activate 

Теперь, когда я попробуйте установить пипс в вену, он не работает так:

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 2.7.8.

EDIT: Я сначала попытался создать virtualenv без --no-Setuptools вариант, но это дало мне ту же ошибку:

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 

Я попытался установить пип с python2.7 напрямую, но даже это не работает:

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' 
+0

Если вы используете самую последнюю версию 2.7, быстрое обходное решение должно использовать 'python -m securitypip'. – cel

+0

Как насчет прямого вызова python2.7, то есть: 'python2.7 get-pip.py' – user590028

+0

Можете ли вы уточнить, почему вы используете' --no-setuptools'? Это подавляет установку 'setuptools' и' pip'. Это справедливо, но почему же вы пытаетесь загрузить «pip» после этого? – cel

ответ

8

Я был в ситуации, подобной вашей, и я в конце концов нашел исправление. По крайней мере, в моем случае корневая проблема заключалась в том, что когда я скомпилировал python 2.7.8, процесс сборки не нашел подходящих библиотек OpenSSL (потому что они не были установлены в моей системе). После окончания работы сделайте это показало краткое подобное этому:

Failed to find the necessary bits to build these modules: 
_bsddb    _curses   _curses_panel 
_hashlib   _sqlite3   _ssl 

Это не мешает сделать установку от работы, и после этого Python работает нормально, за исключением того, что он не может получить доступ к HTTPS URL-адреса и другие связанные функциональные возможности , Вы можете сказать, если это ваш случай, запустив питон, а затем ввести

import ssl

Если вы видите ImportError, то модуль SSL отсутствует. В противном случае вы не видите никакого сообщения.

Я установил это, устанавливая библиотеки OpenSSL, запустив (как корень):

yum install openssl-devel

После этого был на месте, я перестроен Python с макияж (теперь _ssl не был внесен в список пропавших без вести), а затем по маркам установить. После этого запуск get-pip.py работал без сбоев. Надеюсь, это поможет!

+0

Да. Моя проблема была такой же, как у вас. Я проигнорировал сводку и продолжил установку. Хотя я, наконец, закончил установку python 2.7.9, как было предложено cel в комментариях выше, я уверен, что у меня было бы 2.7.8, работая, как только я установил библиотеки ssl. В любом случае, отмечая ваш ответ как правильное решение проблемы. – saurabh

+0

Для пользователей osx способ справиться с этим будет через homebrew, и простой ответ будет ... 'brew install openssl', затем' brew unlink python', затем 'brew install python'. Это просто сработало для меня. – bwest87

Смежные вопросы