Virtualenv установка пакета в глобальном каталоге - PullRequest
2 голосов
/ 10 февраля 2020

Я прочитал этот вопрос и другие подобные вопросы, но не смог найти ответ на свои проблемы.

Моя проблема: когда я захожу в muy virtual env и активирую его, если я устанавливаю пакет там, он также устанавливается в другом месте на моем компьютере.

Так, например, если я наберу в терминале:

cd home/Documents/Python/tests/my_virtual_env
source bin/activate

Это активирует виртуальную среду. Если я наберу:

pip3 install wget  #just an example package 

, я увижу процесс установки и могу запустить скрипт .py, который использует wget. Однако, почему этот пакет также установлен в другом месте на моем компьютере?

  1. Я удостоверился, что этот пакет не был установлен заранее, используя список pip3.
  2. Я подтвердил, что пакет был установлен в другом месте, запустив скрипт .py из других каталогов (используя cd /etc.etc/ для изменения каталога, а затем запустив его оттуда).
  3. Я деактивировал окружающую среду в нужный момент.

Я также понял, что если я удаляю этот пакет в virtualenv, он также удаляется в другом месте.

Большое спасибо за вашу помощь.

1 Ответ

1 голос
/ 10 февраля 2020

Возможно, выполняемая команда pip3 на самом деле не связана с виртуальной средой . Таким образом, вместо этого вы можете выполнить следующее, которое будет работать независимо от того, активирована ли виртуальная среда :

$ path/to/my_virtual_env/bin/python3 -m pip install SomeProject

Следующая команда должна дать вам относительно четкое представление о том, где именно находится проект. был установлен, убедитесь, что он находится в каталоге site-packages виртуальной среды :

$ path/to/my_virtual_env/bin/python3 -m pip show SomeProject

Так что должно отображаться что-то вроде:

Name: SomeProject
...
Location: .../path/to/my_virtual_env/lib.python3.X/site-packages

Однако, почему этот пакет также установлен в другом месте на моем компьютере?

Ниже показано, где находится двоичный файл:

$ which somecommand

Должно быть относительно легко распознать, находится ли somecommand в виртуальной среде Python или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...