不要感到困惑,有大量关于安装 Python 包、如何导入生成的模块以及列出可用包的问题。但是,如果您没有 pip 样式文件或 Pipenv Pipfile ,则--what-provides
似乎没有与pip等效的选项。此问题与上一个问题类似,但要求提供父包,而不是其他元数据。也就是说,这些其他问题并没有得到很多关注或许多接受的答案 - 例如。如何查找给定模块的 python 包元数据信息。就这样砥砺前行……requirements.txt
举例来说,有两个包(仅举几例)将安装名为的模块serial
- 即pyserial和serial。因此,假设安装了其中一个软件包,我们可以使用 pip list 找到它:
python3 -m pip list | grep serial
但是,如果包的名称与模块的名称不匹配,或者您只是想找出要安装的包(在旧服务器或开发计算机上工作),就会出现问题。
您可以检查导入模块的路径 - 这可以给您提供线索。但继续这个例子......
>>> import serial
>>> print(serial.__file__)
/usr/lib/python3.6/site-packages/serial/__init__.py
它位于一个serial目录中,但实际上只安装了pyserial ,而不是serial:
> python3 -m pip list | grep serial
pyserial 3.4
我能想到的最接近的是生成一个可能在依赖子文件上失败的requirements.txtvia (就像我所做的那样),或者通过Pipenvpipreqs ./反向检查依赖关系(这会带来一整套新问题来完成所有设置):
> pipenv graph --reverse
cymysql==0.9.15
ftptool==0.7.1
netifaces==0.10.9
pip==20.2.2
PyQt5-sip==12.8.1
- PyQt5==5.15.0 [requires: PyQt5-sip>=12.8,<13]
setuptools==50.3.0
wheel==0.35.1
有谁知道我错过了一个简单的解决方案来查找 pip 包提供特定模块的命令?
互换的青春
狐的传说
相关分类