`pip list` 列出实际未安装的包
`pip list` listing packages which are actually not installed
我想我发现了 "a feature",在一些奇怪的情况下 pip
列出了一个已安装的包,即使它没有。如果有人能向我解释发生了什么——那就太好了。以下是重现步骤:
设置两个python环境:$ python3 -m venv env_1 && python3 -m venv env_2
获取任何带有setup.py的正常python包进行安装,我个人使用了我在互联网上找到的第一个东西:$ git clone https://github.com/BillMills/python-package-example.git
激活env_1:$ . env_1/bin/activate
安装你得到的包作为开发包:$ pip install -e python-package-example
停用env_1,激活env_2:$ deactivate && . env_2/bin/activate
进入您刚为 env_1 安装的软件包并列出已安装的软件包(对于 env_2):$ cd python-package-example && pip list
无论出于何种原因,这显示 python-package-example 已安装。不过,仅当您位于此文件夹内时才有效,并且仅在您将其作为开发包安装一次后才有效。
P.S。 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
returns WARNING: Package(s) not found: python-package-example
中的相同查询在 python-package-example
之外,并且 return 与 env_1
中的查询相同那个文件夹。
我无法重现:
(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
未列出。
可能与此pip issue有关。
当前工作目录中的 python_package_example.egg-info/
以某种方式被拾取并注册为已安装的项目。
我不会太担心它。正如在前面提到的问题的评论中所说,这就是为什么 src layout 是一件非常好的事情,并且在大多数情况下可以缓解这个问题和许多其他类似问题。
我想我发现了 "a feature",在一些奇怪的情况下 pip
列出了一个已安装的包,即使它没有。如果有人能向我解释发生了什么——那就太好了。以下是重现步骤:
设置两个python环境:
$ python3 -m venv env_1 && python3 -m venv env_2
获取任何带有setup.py的正常python包进行安装,我个人使用了我在互联网上找到的第一个东西:
$ git clone https://github.com/BillMills/python-package-example.git
激活env_1:
$ . env_1/bin/activate
安装你得到的包作为开发包:
$ pip install -e python-package-example
停用env_1,激活env_2:
$ deactivate && . env_2/bin/activate
进入您刚为 env_1 安装的软件包并列出已安装的软件包(对于 env_2):
$ cd python-package-example && pip list
无论出于何种原因,这显示 python-package-example 已安装。不过,仅当您位于此文件夹内时才有效,并且仅在您将其作为开发包安装一次后才有效。
P.S。 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
returns WARNING: Package(s) not found: python-package-example
中的相同查询在 python-package-example
之外,并且 return 与 env_1
中的查询相同那个文件夹。
我无法重现:
(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
未列出。
可能与此pip issue有关。
当前工作目录中的 python_package_example.egg-info/
以某种方式被拾取并注册为已安装的项目。
我不会太担心它。正如在前面提到的问题的评论中所说,这就是为什么 src layout 是一件非常好的事情,并且在大多数情况下可以缓解这个问题和许多其他类似问题。