Обертка Virtualenv несовместима с python2 на Mac? - PullRequest
0 голосов
/ 09 апреля 2019

Я использую virtualenvwrapper. Он отлично работал на моем предыдущем компьютере, используя High Sierra, но у меня есть новый компьютер с Mojave.

Похоже, что при попытке установить virtualenvwrapper с pip я получаю:

Installing collected packages: six, stevedore, virtualenvwrapper
  Found existing installation: six 1.4.1
Cannot uninstall 'six'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

Я получаю то же самое, если пытаюсь обновить шесть ...

Если я установлю с pip3, все будет нормально.

Тем не менее, / usr / bin / python по-прежнему является python2, потому что, похоже, это никто не меняет. Поэтому всякий раз, когда я пытаюсь использовать virtualenvwrapper, он говорит:

/usr/bin/python: No module named virtualenvwrapper

Я пытался удалить / usr / bin / python или сделать его ссылкой на python3 или что-то еще, но у меня нет прав на это, даже с sudo.

Я не уверен, какую часть этого узла я могу распутать ...

ETA: фактический вывод из прогона:

turlingdrome$ mkvirtualenv testenv -p python3
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7'
New python executable in /Users/brianp/work/venvs/testenv/bin/python3.7
Also creating executable in /Users/brianp/work/venvs/testenv/bin/python
Installing setuptools, pip, wheel...
done.
/usr/bin/python: No module named virtualenvwrapper
turlingdrome$ workon testenv
/usr/bin/python: No module named virtualenvwrapper
/usr/bin/python: No module named virtualenvwrapper
(testenv) turlingdrome$ python
Python 3.7.3 (default, Mar 27 2019, 09:23:15) 
[Clang 10.0.1 (clang-1001.0.46.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
(testenv) turlingdrome$ deactivate
/usr/bin/python: No module named virtualenvwrapper
/usr/bin/python: No module named virtualenvwrapper
turlingdrome$ 

Правильно ли все настроено? Я не знаю. Обычно mkvirtualenv автоматически активирует только что созданный env ...

Когда я устанавливаю VIRTUALENVWRAPPER_PYTHON, я получаю:

turlingdrome$ export VIRTUALENVWRAPPER_PYTHON=python3
turlingdrome$ mkvirtualenv test2 -p python3
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7'
New python executable in /Users/brianp/work/venvs/test2/bin/python3.7
Also creating executable in /Users/brianp/work/venvs/test2/bin/python
Installing setuptools, pip, wheel...
done.
virtualenvwrapper.user_scripts creating /Users/brianp/work/venvs/test2/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/brianp/work/venvs/test2/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/brianp/work/venvs/test2/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/brianp/work/venvs/test2/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/brianp/work/venvs/test2/bin/get_env_details
/Users/brianp/work/venvs/test2/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
/Users/brianp/work/venvs/test2/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
(test2) turlingdrome$ 
...