`pip list` список пакетов, которые на самом деле не установлены - PullRequest
0 голосов
/ 24 октября 2019

Я думаю, что нашел "особенность", где при некоторых странных условиях pip перечисляет пакет как установленный, хотя это не так. Если бы кто-то мог объяснить мне, что происходит - это было бы хорошо. Вот шаги для воспроизведения:

  1. настройка двух сред python: $ python3 -m venv env_1 && python3 -m venv env_2

  2. получите любой обычный пакет python с setup.py для установкиЯ лично использовал первое, что нашел в интернете: $ git clone https://github.com/BillMills/python-package-example.git

  3. активировать env_1: $ . env_1/bin/activate

  4. установить пакет, который выполучил в качестве пакета разработки : $ pip install -e python-package-example

  5. деактивировать env_1, активировать env_2: $ deactivate && . env_2/bin/activate

  6. зайти внутрьиз пакета, который вы только что установили для env_1 и перечислите установленные пакеты (для env_2): $ cd python-package-example && pip list

По любой причине это показывает пример пакета python как уже установленный. Работает только тогда, когда вы находитесь внутри этой папки, и только после того, как вы установили его один раз как пакет разработки.

PS python3 -m pip show python-package-example в env_1 показывает:

Name: python-package-example
Version: 0.1
Summary: An example python package
Home-page: https://github.com/BillMills/python-package-example
Author: Bill Mills
Author-email: myemail@example.com
License: MIT
Location: /home/esrlabs/Workspace/testing/bash/test/python-package-example
Requires: numpy
Required-by:

То жезапрос в env_2 возвращает WARNING: Package(s) not found: python-package-example вне python-package-example и возвращает то же самое, что и для env_1, находясь в этой папке.

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

Вероятно, это связано с pip проблемой .

python_package_example.egg-info/ в текущем рабочем каталоге каким-то образом подобрано и зарегистрировано как установленный проект.

Я бы не стал слишком беспокоиться об этом. Как сказано в комментариях к ранее упомянутой проблеме, именно поэтому src layout - очень хорошая вещь, и в большинстве случаев смягчает эту проблему и многие другие подобные.

0 голосов
/ 25 октября 2019

Я не могу воспроизвести:

(env_2) test-venv $$ cd python-package-example/
(env_2) python-package-example $$ pip list
Package    Version
---------- -------
pip        19.3.1 
setuptools 41.4.0 
wheel      0.33.6 

python-package-example нет в списке.

...