我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

对于一个已经完成的python系统来说,依赖模块的安装都是通过pip install -r requirements.txt这样的命令安装的。而不是单独的通过pip install <pageckage>这样的途径安装的。那么,问题来了,对于某个具体的模块,如何判断到底是归属于哪个包呢?

苏南大叔:如何判断python模块属于哪个包?模块的物理位置在哪里? - python-module-whereis
如何判断python模块属于哪个包?模块的物理位置在哪里?(图3-1)

大家好,这里是苏南大叔的“平行空间笔记本”博客,这里讲述苏南大叔和计算机代码的故事。本文中致力于解决某个模块归属于某个包的问题。测试环境:win10python@3.6.8

基本情况

可以确定的是,某个模块肯定已经被安装了,可以正常使用,但是不确定是属于哪个包的。因为,当时所有的包都是一起安装的。并没有单独安装某个包。

pip install -r requirements.txt

方案一

当然,也可以使用下面的命令,来提供一些线索。

pip list | grep <name>

大多数情况下,这样的方案就可以了。可以看到名称类似的包名。就可以用于判断下文中的<packagename>了。

pip install <packagename>

方案二

执行下面的代码,就可以看到属于哪个包了。比如:
苏南大叔想要查看csv模块和pandas模块的归属:

import csv
print (csv)

import pandas
print (pandas)

返回的数据如下:

<module 'csv' from 'D:\\Program Files\\py3.6.8\\lib\\csv.py'>
<module 'pandas' from 'D:\\Program Files\\py3.6.8\\lib\\site-packages\\pandas\\__init__.py'>

苏南大叔:如何判断python模块属于哪个包?模块的物理位置在哪里? - pip-package-whereis
如何判断python模块属于哪个包?模块的物理位置在哪里?(图3-2)

这个结果足够明显吧?csv是内置模块,pandas是第三方模块,存在于site-packages之中。

对目标模块假意删除,也可以暴露模块的物理位置,例如:

苏南大叔:如何判断python模块属于哪个包?模块的物理位置在哪里? - python-uninstall
如何判断python模块属于哪个包?模块的物理位置在哪里?(图3-3)

参考文献

总结

找模块位置的目的,仅仅是为了获得合适的pip install命令,这就是个“先有鸡还是先有蛋”的故事了。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python