Народ, подскажите как правильно работать с виртуальными окружениями Python pyenv + pyenv-virtualenv ?
Я не могу понять до конца разницу между командами :
- pyenv local someEnvName
- pyenv global someEnvName
с одной стороны, и :
- pyenv activate someEnvName
с другой.
То есть, я вроде бы понимаю их назначение по отдельности, но нет целостной картины всего процесса администрирования виртуальных окружений...
Как я это понимаю:
pyenv local someEnvName - устанавливает виртуальное окружение с именем someEnvName для конкретной директории (???)
pyenv global someEnvName - устанавливает виртуальное окружение с именем someEnvName для всей операционной системы (???)
pyenv activate someEnvName - активирует/устанавливает виртуальное окружение с именем someEnvName для....Чего??? Конкретного каталога или...?
Для наглядности, приведу свою пошаговую последовательность действий.
ШАГ № 1. Создание каталога(папки) для нового проекта Python.
ШАГ № 2. Просмотр всех доступных версий интерпретатора Python, установленных с помощью утилиты
pyenvШАГ № 3. Создание нового виртуального окружения для проекта на базе выбранной версии интерпретатора.
ШАГ № 4. Установка (активация) виртуального окружения
И вот тут у меня возникает дилемма, какую команду использовать
pyenv local newPythonProjectEnv или
pyenv activate newPythonProjectEnv ???
По итогу, меня смущает тот факт, что в терминале перед началом командной строки отображаются две пары круглых скобок. В одной - имя необходимого мне виртуального окружения, а в другой - имя виртуального окружения, установленного по-умолчанию для всей системы. НО, что важно, когда я ввожу команду
pip3 list, в терминале отображаются ВСЕ загруженные пакеты на уровне всей системы, т.е. для виртуального окружения с именем
base, хотя я ожидал увидеть пустой список для
newPythonProjectEnv.
Что я делаю не так ? Помогите разобраться.
Если можно, опишите правильный пошаговый алгоритм действий при работе с виртуальными окружениями Python.
з.ы. И еще такой вопрос, почему когда я ввожу в терминал команду pyton --version
мне выводится:
, а когда ввожу pyton3 --version выводится:
хотя ни та, ни другая версия интерпретатора не значится в списке, который выводится на экран после команды
pyenv versions:
з.ы.ы. Не судите строго, я только учусь. На всякий случай ниже приведу весь лог моих действий в терминале. Буду рад любой конструктивной критике, совету, полезной ссылке.
ЛОГ ТЕРМИНАЛА(base) ➜ Видеокурс
python --versionPython 2.7.15+
(base) ➜ Видеокурс
python3 --versionPython 3.6.8
(base) ➜ Видеокурс
pyenv localpyenv: no local version configured for this directory
(base) ➜ Видеокурс
pyenv global3.7.3
(base) ➜
Видеокурс pyenv versionssystem 2.7.162.7.16/envs/myNewVenv-2.7.16 3.4.4* 3.7.3 (set by /home/neon/.pyenv/version)3.7.3/envs/myNewVenv-3.7.3 3.7.3/envs/webscraping-3.7.3anaconda3-2019.03 anaconda3-2019.03/envs/headfirstanaconda3-2019.03/envs/marklutc-booksanaconda3-2019.03/envs/python-spec-lvl1 anaconda3-2019.03/envs/tceh-coursemyNewVenv-2.7.16myNewVenv-3.7.3 webscraping-3.7.3
(base) ➜ Видеокурс
pyenv virtualenvs
2.7.16/envs/myNewVenv-2.7.16 (created from /home/neon/.pyenv/versions/2.7.16)
3.7.3/envs/myNewVenv-3.7.3 (created from /home/neon/.pyenv/versions/3.7.3)
3.7.3/envs/webscraping-3.7.3 (created from /home/neon/.pyenv/versions/3.7.3)
anaconda3-2019.03 (created from /home/neon/.pyenv/versions/anaconda3-2019.03)
anaconda3-2019.03/envs/headfirst (created from /home/neon/.pyenv/versions/anaconda3-2019.03)
anaconda3-2019.03/envs/marklutc-books (created from /home/neon/.pyenv/versions/anaconda3-2019.03)
anaconda3-2019.03/envs/python-spec-lvl1 (created from /home/neon/.pyenv/versions/anaconda3-2019.03)
anaconda3-2019.03/envs/tceh-course (created from /home/neon/.pyenv/versions/anaconda3-2019.03)
myNewVenv-2.7.16 (created from /home/neon/.pyenv/versions/2.7.16)
myNewVenv-3.7.3 (created from /home/neon/.pyenv/versions/3.7.3)
webscraping-3.7.3 (created from /home/neon/.pyenv/versions/3.7.3)
(base) ➜ Видеокурс
mkdir newPythonProject && cd newPythonProject
(base) ➜ newPythonProject
pyenv virtualenv 3.4.4 newPythonProjectEnvIgnoring indexes: https://pypi.python.org/simple
Requirement already satisfied (use --upgrade to upgrade): setuptools in /home/neon/.pyenv/versions/3.4.4/envs/newPythonProjectEnv/lib/python3.4/site-packages
Requirement already satisfied (use --upgrade to upgrade): pip in /home/neon/.pyenv/versions/3.4.4/envs/newPythonProjectEnv/lib/python3.4/site-packages
(base) ➜ newPythonProject
pyenv versions system2.7.162.7.16/envs/myNewVenv-2.7.163.4.43.4.4/envs/newPythonProjectEnv* 3.7.3 (set by /home/neon/.pyenv/version)3.7.3/envs/myNewVenv-3.7.3 3.7.3/envs/webscraping-3.7.3anaconda3-2019.03 anaconda3-2019.03/envs/headfirstanaconda3-2019.03/envs/marklutc-booksanaconda3-2019.03/envs/python-spec-lvl1anaconda3-2019.03/envs/tceh-coursemyNewVenv-2.7.16 myNewVenv-3.7.3newPythonProjectEnvwebscraping-3.7.3
(base) ➜ newPythonProject
pyenv local newPythonProjectEnv
(newPythonProjectEnv) (base) ➜
newPythonProject pyenv localnewPythonProjectEnv
(newPythonProjectEnv) (base) ➜ newPythonProject
pip3 listDEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.apturl (0.5.2)
argcomplete (1.8.1)
asn1crypto (0.24.0)
astroid (2.2.5)
beautifulsoup4 (4.6.0)
Brlapi (0.6.6)
certifi (2018.1.18)
chardet (3.0.4)
command-not-found (0.3)
cryptography (2.1.4)
cupshelpers (1.0)
Cython (0.29.2)
defer (1.0.6)
distro-info (0.18ubuntu0.18.04.1)
galternatives (0.92.2)
html5lib (0.999999999)
httplib2 (0.9.2)
idna (2.6)
isort (4.3.21)
jedi (0.11.1)
keyring (10.6.0)
keyrings.alt (3.0)
language-selector (0.1)
launchpadlib (1.10.6)
lazr.restfulclient (0.13.5)
lazr.uri (1.0.3)
lazy-object-proxy (1.4.1)
louis (3.5.0)
lxml (4.2.1)
macaroonbakery (1.1.3)
Mako (1.0.7)
MarkupSafe (1.0)
mccabe (0.6.1)
netifaces (0.10.4)
oauth (1.0.1)
olefile (0.45.1)
parso (0.1.1)
pexpect (4.2.1)
Photohash (0.4.1)
Pillow (5.3.0)
pip (9.0.1)
progressbar (2.3)
protobuf (3.0.0)
psutil (5.4.8)
pycairo (1.16.2)
pycrypto (2.6.1)
pycups (1.9.73)
pygobject (3.26.1)
pylint (2.3.1)
pymacaroons (0.13.0)
PyNaCl (1.1.2)
pyRFC3339 (1.0)
python-apt (1.6.4)
python-chess (0.24.1)
python-dateutil (2.6.1)
python-debian (0.1.32)
python-gnupg (0.4.1)
pytz (2018.3)
pyxattr (0.6.0)
pyxdg (0.25)
PyYAML (3.12)
reportlab (3.4.0)
requests (2.18.4)
requests-unixsocket (0.1.5)
scandir (1.9.0)
scour (0.36)
screen-resolution-extra (0.0.0)
SecretStorage (2.3.1)
setuptools (40.6.3)
simplejson (3.13.2)
six (1.12.0)
speedtest-cli (2.1.1)
system-service (0.3)
systemd-python (234)
thonny (2.1.16)
typed-ast (1.4.0)
ubuntu-drivers-common (0.0.0)
Ubuntu-Make (18.5)
ufw (0.36)
unattended-upgrades (0.1)
urllib3 (1.22)
usb-creator (0.3.3)
virtualenv (16.6.2)
wadllib (1.3.2)
webencodings (0.5)
wheel (0.30.0)
wrapt (1.11.2)
xkit (0.0.0)
youtube-dl (2019.6.8)
zope.interface (4.3.2) НЕ РАСКРЫВАЙ!!! Огромное спасибо тебе, человек, прочитавший мою простыню до конца)