Настройка среды в virtaulenv с использованием python3, застрявшего на setuptools, pip, wheel
Выполнение следующего:
virtualenv -p python3 venv
дает:
Running virtualenv with interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /specific/a/home/cc/students/csguests/taivanbatb/venv/bin/python3
Also creating executable in /specific/a/home/cc/students/csguests/taivanbatb/venv/bin/python
Installing setuptools, pip, wheel...
где он застревает.
Вызов CTRL-C дает:
File "/usr/local/bin/virtualenv", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 671, in main
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 2328, in <module>
raise SystemExit(popen.wait())
File "/usr/lib/python2.7/subprocess.py", line 1376, in wait
pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0)
File "/usr/lib/python2.7/subprocess.py", line 476, in _eintr_retry_call
return func(*args)
KeyboardInterrupt
main()
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 713, in main
symlink=options.symlink)
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 945, in create_environment
download=download,
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 901, in install_wheel
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 769, in call_subprocess
line = stdout.readline()
KeyboardInterrupt
Аналогично этому.
Как указано в связанном вопросе, я попытался установить с помощью --no-wheel
, но безрезультатно. И я уверен, что это не проблема сетевого подключения, потому что настройка среды с использованием python2 с помощью virtualenv env
не дает ошибок.
Конкретные версии всех пакетов, которые я использую, следующие:
python 3.4.0
python 2.7.6
virtualenv 15.1.0
Ответы
Ответ 1
1. Проверьте свои интернет-соединения.
2. Установите python3 в качестве интерпретатора Python по умолчанию, так как у вас есть Python2.7 в качестве интерпретатора Python по умолчанию. Попробуйте использовать без колесика:
virtualenv venv --no-wheel
Затем активируйте virtualenv и выполните: -
pip install --upgrade pip
pip install setuptools --no-use-wheel --upgrade
pip install wheel --no-cache
Если вы используете прокси-сервер, используйте: -
sudo pip download setuptools pip wheel --proxy http://<yourproxyhere>
После всего этого virtualenv -p python3 venv
прекрасно работает в моем virtualenv perfectly.
ПРИМЕЧАНИЕ. Предполагается, что в вашей системе уже установлена виртуальная среда, а python3 является вашим интерпретатором по умолчанию.
В качестве альтернативы вам не нужно делать virtualenv -p python3 venv
. Вы можете указать интерпретатор Python (находится в папке /usr/bin/*), который вы хотите использовать в virtualenv, и использовать его следующим образом: -
virtualenv --python =/usr/bin/pythonX.Y /Главная/имя пользователя/путь/к /virtualenv_name
если вы хотите установить в текущем рабочем каталоге, вы можете использовать: -
virtualenv --python =/usr/bin/pythonX.Y virtualenv_name
ССЫЛКА
Ответ 2
Ваша трассировка стека указывает, что вы используете virtualenv из вашей установки 2.7. Это означает, что ваш PATH не установлен для 3.x. Начните новую оболочку, установите PATH, чтобы /usr/local/lib/python 2.7 не был включен, и повторите попытку.
Ответ 3
virtualenv
- это просто пакет python. И вы можете установить его как на python2, так и на python3.
По моему опыту, virtualenv на python3 отлично справляется с версиями python. Ваша stacktrace показывает, что вы используете virtualenv для python2 - попробуйте перейти на python3.
Чтобы установить его на python3, запустите
pip3 install virtualenv
или, если вам по какой-то причине нужно использовать apt-get,
apt-get install python3-virtualenv
Ответ 4
попробуйте это, когда net connect недоступен:
virtualenv --no-setuptools --no-wheel env_only_pip
вы все равно можете использовать pip при входе в virtualenv
pip install --no-index --find-links=file:py_package -r requirements.txt