5

Попытка окончательно совершить переход к Python 3, но я столкнулся с некоторыми проблемами с virtualenvwrapper. Я начинаю с создания виртуальной среды, как так:Python3 pip, устанавливающий глобально, когда в virtualenv

mkvirtualenv -p /usr/local/bin/python3 projectname

, который дает:

Running virtualenv with interpreter /usr/local/bin/python3 
Using base prefix '/usr/local/Cellar/python3/3.3.3/Frameworks/Python.framework/Versions/3.3' 
New python executable in projectname/bin/python3.3 
Also creating executable in projectname/bin/python 
Installing setuptools, pip...done. 

До сих пор, так хорошо. Я проверяю консоль python, чтобы убедиться, что среда смотрит на правильный интерпретатор и все такое и есть. Вот где печаль происходит (в то время как virtualenv активен):

pip install flask претензии, чтобы быть успешным, но увы:

Python 3.3.3 (default, Jan 2 2014, 13:26:32) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import flask 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named 'flask' 

Вот вопрос:

$ pip show flask 
--- 
Name: Flask 
Version: 0.10.1 
Location: /usr/local/lib/python3.3/site-packages 
Requires: Werkzeug, Jinja2, itsdangerous 

Если я не полностью недоразумение virtualenv/wrapper и их соответствующие магии (что я очень хорошо мог бы), похоже, что pip install устанавливает Flask глобально, а не в пакеты сайта в моем virtualenv, и, таким образом, virtualenv игнорирует это.

Любые подсказки, что здесь происходит/как исправить? Я ошибаюсь, полагая, что virtualenvwrapper готов к прайм-тайму с python3? Довольно приемлемые решения, в которых мне не нужно приводить в порядок мои .bashrc или вручную заданные переменные среды. Я надеюсь, что есть способ сделать это через api, предоставленный virtualenv и virtualenvwrapper.

Спасибо!

+0

Какие версии 'pip' и' virtualenv'? (Или вы используете 'venv' вместо' virtualenv'?) Я помню некоторую проблему с версиями pip 1.4 и последних версий virtualenv (хотя эти версии были с 1.4), которые были решены путем обновления до pip 1.5, но я не могу вспомнить если это была проблема ... – abarnert

+0

пип, который используется, когда я активировал virtualenv, является: pip 1.5 из /usr/local/lib/python3.3/site-packages (python 3.3). Я использую virtualenvwrapper, чтобы отвлечь виртуальный материал, но когда я набираю 'virtualenv -version', я получаю 1.11 – follyroof

+0

. Хорошо, поэтому он использует вашу' '' '' '' '' '' '' '' '' '' '' '' '', чем я ожидал вызывают именно эту проблему. Отображает ли 'which pip'/usr/local/bin/pip, или это правильный путь (тот, который находится внутри вашего env)? – abarnert

ответ

0

У меня были проблемы с установкой пакетов пакетов по всему миру, а не в активированный virtualenv. Посмотрите на pip installing in global site-packages instead of virtualenv на вопрос (и ответ).

В основном, решение состояло в модификации shebang скриптов pip в virtualenv, поскольку они указывали на неправильную установку python (глобальную, а не в virtualenv). Просто измените shebang, чтобы указать на правильное местоположение, и вы настроены.

Примечание: кредит должен быть отправлен в Chase Ries, который придумал решение.

0

У меня была та же проблема. Он, по-видимому, разрешен как Virtualenv 1.11.4.

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