Проблема с подключением VirtualEnv
linux_mint/python3.9
Такая проблема. Создаю virtualenv
python -m virtualenv env
Создалось. Запускаем, активируем, получается. Даже если теперь запустить
os.environ['VIRTUAL_ENV']
То окажется, что переменная виртуального окружения создана, но если вывести
sys.executable
То окажется, что виртуальное окружение не активировано, а все библиотеки устанавливаются прямо на комп.
Как быть?
UPD1: При использовании pipenv ошибка та же, но результат отличается в зависимости от использования. Например, script.py
import sys
print(sys.prefix)
Получаем вот так
(env2)$ pipenv run python script.py
Courtesy Notice: Pipenv found itself running within a virtual environment,
so it will automatically use that environment, instead of creating its own
for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to
ignore that environment and create its own instead. You can set IPENV_VERBOSITY=-1
to suppress this warning.
/path/to/env2
(env2)$ python script.py
/usr
Даже сам pipenv говорит, что нет смысла запускать pipenv run, когда pipenv активирован, ведь, получается, что смысл есть...
UPD2:
Понял, что venv не то же, что virtualenv. При использовании venv возникла ошибка вроде env/bin/python3.9', '-Im', 'ensurepip', '--upgrade', '--default-pip'.
Ответы (1 шт):
- При использовании
virtualenvжелательно использовать флаг--no-site-packages, однако, у меня python говорит, что его нет. Говорят, что это дефолт и уже прописано в.bashrc. Проверять не стал, ноvirtualenvвсе равно подтягивает зависимости. - По работе получается
venv != virtualenv
я для себя сделал вывод, что лучше использовать первый. Но с ним могут быть проблемы. Например, та, что в вопросе. Решается простой установкой библиотек
apt install python3.x-dev python3.x-venv
где вместо x, очевидно, своя версия.
Всем спасибо за помощь. Особенно @insolor