в `pyenv/pyenv-virtualenv` могу ли я создать virtualenv, который ссылается на `систему`, то есть без `pyenv install` раньше?

Здравствуйте, я использую pyenv и его плагин pyenv-virtualenv.

Обычно я сначала устанавливал pyenv (например, pyenv install 3.7.6), а затем virtualenv (например, pyenv virtualenv 3.7.6 myenv), а затем переходил к pip install.

На этот раз, поскольку в системе уже есть Python 3.7, и из-за нехватки места на диске (у меня Raspberry Pi 3 с buster), я хотел бы избежать установки всего Python, но все же я хотел бы изолировать в пользовательском пространстве virtualenv пакеты python (numpy, pandas и т.д.). Поэтому я хотел бы определить virtualenv, который использует систему python3.

Я пробовал pyenv virtualenv system sysenv, но он не работает (утверждает, что не может найти пункт):

$ pyenv virtualenv system sysenv
Traceback (most recent call last):
  File "/usr/bin/pip", line 7, in <module>
    from pip._internal.main import main
ModuleNotFoundError: No module named 'pip'

чего я не понимаю, так как у меня установлены пакеты python-pip и python3-pip apt.

Итак: возможно ли создать виртуальную среду, использующую систему python3? Что мне не хватает? Или это плохая идея, так как системный python может быть обновлен apt позже?


person lurix66    schedule 29.01.2020    source источник


Ответы (1)


Вы можете просто использовать virtualenv без pyenv.

e.g.

$ virtualenv -p $(which python3) sysenv

Я не могу вспомнить, активирует ли эта команда env, поэтому, если нет, вы можете запустить

$ source sysenv/bin/activate
person Hitobat    schedule 29.01.2020
comment
Спасибо @Hitobat, у меня есть плагины pyenv и pyenv-virtualenv (см. ссылки в вопросе), поэтому я не могу использовать ту же команду. Я пробовал с $ pyenv virtualenv -p system sysenv и получаю ответ pyenv-virtualenv: 'system' is not installed in pyenv. Если я опускаю опцию -p, становится еще хуже: pyenv: pip: command not found - person lurix66; 03.02.2020