В Python 3.8 venv отсутствует команда активации

Я скомпилировал Python 3.8.1 в домашнем каталоге пользователя с

configure --prefix=/home/a_user/python3.8 --enable-shared
  1. Когда я попытался использовать venv, я получаю:
python3 -m venv test_env
Error: Command '['/home/a_user/test_env/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
  1. test_env создан, но неполный:
test_env/
├── bin
│   ├── python -> python3
│   └── python3 -> /home/a_user/python3.8/bin/python3
├── include
├── lib
│   └── python3.8
│       └── site-packages
├── lib64 -> lib
└── pyvenv.cfg

6 directories, 3 files
  1. гарантия существует:
python3 -m ensurepip
Looking in links: /tmp/tmpeqrn78f5
Requirement already satisfied: setuptools in ./python3.8/lib/python3.8/site-packages (41.2.0)
Requirement already satisfied: pip in ./python3.8/lib/python3.8/site-packages (19.2.3)

Так что я не знаю, чего не хватает.


person Richard    schedule 02.01.2020    source источник
comment
Какая у вас ОС?   -  person Gino Mempin    schedule 02.01.2020
comment
Если вы запустите эту команду вручную — test_env/bin/python3 -Im ensurepip --upgrade --default-pip — покажет ли она какие-либо результаты?   -  person Ry-♦    schedule 02.01.2020
comment
Я использую openSUSE LEAP 15.1.   -  person Richard    schedule 02.01.2020
comment
‹code› Не удалось найти библиотеки, зависящие от платформы ‹exec_prefix› Рассмотрите возможность установки $PYTHONHOME в ‹prefix›[:‹exec_prefix›] Traceback (последний последний вызов): .... удалены некоторые строки Файл /home/user/python3.8 /lib/python3.8/tempfile.py, строка 45, в ‹модуле› из случайного импорта Random as _Random File /home/user/python3.8/lib/python3.8/random.py, строка 41, в ‹модуле › из журнала импорта математики как _log, exp как _exp, pi как _pi, e как _e, ceil как _ceil ModuleNotFoundError: нет модуля с именем «math» ‹/code›   -  person Richard    schedule 02.01.2020
comment
Если я уберу I и запущу test_env/bin/python3 -m ensurepip --upgrade --default-pip, все сработает Looking in links: /tmp/tmp73vwpom8 Requirement already up-to-date: setuptools in ./test_env/lib/python3.8/site-packages (41.2.0) Requirement already up-to-date: pip in ./test_env/lib/python3.8/site-packages (19.2.3)   -  person Richard    schedule 02.01.2020
comment
математический модуль отлично работает в этом тесте. test_env/bin/python3 Python 3.8.1 (default, Jan 2 2020, 02:56:40) [GCC 7.4.1 20190905 [gcc-7-branch revision 275407]] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import math >>> math.factorial(4) 24   -  person Richard    schedule 02.01.2020
comment
Я думаю, что проблема с -Im. По справке -I : isolate Python from the user's environment (implies -E and -s). А так как мой Python 3.8 скомпилирован в кастомную директорию, без окружения пользователя, конечно, не найдет.   -  person Richard    schedule 02.01.2020
comment
Я могу создать venv, используя параметр --without-pip. python3 -m venv --без пипа test_env   -  person Richard    schedule 19.01.2020


Ответы (4)


Окончательное решение:

python3 -m venv --without-pip test_env
source test_env/bin/activate
python3 -m ensurepip --upgrade
pip3 install --upgrade pip

Теперь виртуальная среда полностью настроена и работает.

person Richard    schedule 19.01.2020

Только что обновился до последней версии Python, вывод говорит сам за себя:

apt-get install python3-venv

После этого создание env с

python3 -m venv test_venv

работает как положено, создавая скрипт activate.

Ваше здоровье

person Vadim    schedule 02.07.2020

Чтобы расширить ответ Вадима, потому что я пока не могу комментировать.

Поэтому, если у вас возникли проблемы, проверьте, доступна ли нужная вам версия python-venv, и установите ее.

Замените 3.x своей версией. Если есть доступные пакеты, они будут отображаться в выводе.

sudo apt search python3.7-venv

Я установил python3.7, поэтому я сделал

sudo apt install python3.7-venv

вместо

sudo apt install python3-venv

person tldr    schedule 21.07.2020

На всякий случай, если у вас установлена ​​свежая ОС, установите первый пункт, выполнив следующие команды.

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

После установки вы можете создать виртуальную среду и активировать скрипт

person Kaushal    schedule 15.07.2020