Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Центр помощи
  • » [ Утилита PYENV ]: Команда pip3 list выводит в терминал список глобальных зависимостей вместо ожидаемых локальных зависимостей текущего активного виртуального окружения pyenv. Как это исправить ? [RSS Feed]

#1 Июль 19, 2019 15:53:39

citizen404
Зарегистрирован: 2017-05-14
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

[ Утилита PYENV ]: Команда pip3 list выводит в терминал список глобальных зависимостей вместо ожидаемых локальных зависимостей текущего активного виртуального окружения pyenv. Как это исправить ?

Вех приветствую!

Вообщем вопрос в следующем. Пытаюсь разобраться с виртуальными окружениями Python. Использую для этого утилиту pyenv. Создал для теста каталог с именем “test”, а уже в нем три других каталога в именами “foo”, “bar” и “baz”. Для каждого вложенного каталога создал свое собственное виртуальное окружение по шаблону:

 pyenv virtualenv <intepreter version> <nameOfVirtualEv>

Затем для каждого каталога установил свое локальное окружение с помощью шаблона вида:
 pyenv local <nameOfVirtualEv>

Затем решил проверить список всех установленных пакетов для каждого виртуального окружения по отдельности с помощью команды
 pip3 list
и тут, вместо ожидаемого пустого списка мне вывалился список всех глобально установленных пакетов/зависимостей(!)
Далее я выполнил в терминале для каждого из четырех каталогов команду:
 which python
на что получил вывод:
 /usr/bin/python
Т.е. для родительского каталога “test” (что вполне ожидаемо, т.к. для него я не устанавливал локального окружения) и вложенных трех каталогов (а тут уже неожиданно).
Люди, подскажите пожалуйста, в чем может крыться причина такого поведения ?
Где и что мне поправить (какие файлы), чтобы при вызове из текущего виртуального окружения команды
 pip3 list
, в терминал отображались только те зависимости, которые присущи для активного виртуального окружения ?
Иными словами, как мне добиться поведения, когда при вызове команды
 which python
из каталога foo выводилось что-то вроде
 /home/neon/.pyenv/versions/fooVenv-3.7.4/bin/python
, а не
 /usr/bin/python
???

Интуитивно понимаю, что надо пошаманить где-то с путями в файлах типа .zshrc, .zshenv и им подобными, но в силу малого опыта и знаний не соображу в каком месте…

з.ы. ОС: Ubuntu 18.04; Оболочка для терминала: zsh
Прилагаю прикрепленный файл с логом сеанса работы в терминале для большей наглядности.

Отредактировано citizen404 (Июль 19, 2019 16:05:58)

Прикреплённый файлы:
attachment log.txt (6,4 KБ)

Офлайн

#2 Июль 20, 2019 04:12:45

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

[ Утилита PYENV ]: Команда pip3 list выводит в терминал список глобальных зависимостей вместо ожидаемых локальных зависимостей текущего активного виртуального окружения pyenv. Как это исправить ?

citizen404
Пытаюсь разобраться с виртуальными окружениями Python.
Очень просто разобратся. virtualenv теперь включена в третий питон в виде модуля.
https://docs.python.org/3/library/venv.html

python3 -m venv myenv
. myenv/bin/activate
deactivate



Отредактировано py.user.next (Июль 20, 2019 04:14:05)

Офлайн

#3 Июль 20, 2019 19:25:12

citizen404
Зарегистрирован: 2017-05-14
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

[ Утилита PYENV ]: Команда pip3 list выводит в терминал список глобальных зависимостей вместо ожидаемых локальных зависимостей текущего активного виртуального окружения pyenv. Как это исправить ?

py.user.next
Очень просто разобратся. virtualenv теперь включена в третий питон в виде модуля.
https://docs.python.org/3/library/venv.html

Я в курсе, но мне надо разобраться с утилитой pyenv. Хотя вопрос уже даже не в самой утилите как таковой, а в том, что я видимо неправильно проэкспортировал какие-то пути в файлах настроек терминала типа .zshenv / .zshrc или подобных. У меня проблема в том, что не изолируются виртуальные окружения. При создании нового виртуального окружения и вводе команды
 which python
из соответствующего каталога, для которого данное виртуальное окружение установлено как локальное, мне выводится путь до системного интерпретатора Python - /usr/bin/python и как следствие все установленные пакеты из этого окружения попадают в глобальное пространство имен (если можно так выразится), т.е. теряется весь изначальный смысл для чего были задуманы вирт. окружения.
Но так как я не сильно дружу с Linux, я не могу понять, где и что мне прописать, чтобы исправить это поведение.

Офлайн

#4 Июль 23, 2019 15:48:51

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2679
Репутация: +  182  -
Профиль   Отправить e-mail  

[ Утилита PYENV ]: Команда pip3 list выводит в терминал список глобальных зависимостей вместо ожидаемых локальных зависимостей текущего активного виртуального окружения pyenv. Как это исправить ?

А ты уверен что виртуальные окружения вообще нужны?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

  • Начало
  • » Центр помощи
  • » [ Утилита PYENV ]: Команда pip3 list выводит в терминал список глобальных зависимостей вместо ожидаемых локальных зависимостей текущего активного виртуального окружения pyenv. Как это исправить ?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version