我如何了解一个给定的Python模块的源文件安装在哪里?Windows上的方法和Linux上的方法不同吗?
我特别试图寻找datetime模块的源代码,但我对更一般的答案也感兴趣。
我如何了解一个给定的Python模块的源文件安装在哪里?Windows上的方法和Linux上的方法不同吗?
我特别试图寻找datetime模块的源代码,但我对更一般的答案也感兴趣。
当前回答
下面是一行代码获取模块的文件名,适用于shell别名:
echo 'import sys; t=__import__(sys.argv[1],fromlist=[\".\"]); print(t.__file__)' | python -
设置为别名:
alias getpmpath="echo 'import sys; t=__import__(sys.argv[1],fromlist=[\".\"]); print(t.__file__)' | python - "
使用方法:
$ getpmpath twisted
/usr/lib64/python2.6/site-packages/twisted/__init__.pyc
$ getpmpath twisted.web
/usr/lib64/python2.6/site-packages/twisted/web/__init__.pyc
其他回答
在Ubuntu 12.04上,例如python2的numpy包,可以在以下位置找到:
/usr/lib/python2.7/dist-packages/numpy
当然,这不是一般的答案
对于那些更喜欢GUI解决方案的人:如果你正在使用GUI,如Spyder (Anaconda安装的一部分),你可以右键单击模块名称(如“import csv”中的“csv”),并选择“go to definition”-这将打开文件,但在顶部你可以看到确切的文件位置(“C:....csv.py”)
从标准库尝试imp.find_module
>>> import imp
>>> imp.find_module('fontTools')
(None, 'C:\\Python27\\lib\\site-packages\\FontTools\\fontTools', ('', '', 5))
>>> imp.find_module('datetime')
(None, 'datetime', ('', '', 6))
在windows上,你可以找到python模块的位置,如下所示:E找到rest_framework模块
只是更新答案,以防现在有人需要它,我在Python 3.9和使用Pip来管理包。就用pip show,例如:
pip show numpy
它将为您提供所有详细信息,包括pip存储所有其他包的位置。