我如何了解一个给定的Python模块的源文件安装在哪里?Windows上的方法和Linux上的方法不同吗?
我特别试图寻找datetime模块的源代码,但我对更一般的答案也感兴趣。
我如何了解一个给定的Python模块的源文件安装在哪里?Windows上的方法和Linux上的方法不同吗?
我特别试图寻找datetime模块的源代码,但我对更一般的答案也感兴趣。
当前回答
如果使用pip来安装模块,只需返回pip show $module位置。
其他回答
Python 3.2中的新功能,你现在可以使用dis模块中的code_info(): http://docs.python.org/dev/whatsnew/3.2.html#dis
如上所述 在python中只使用help(模块) 即
进口分数
帮助(分数)
如果你的模块,在例子中的分数,被安装,然后它会告诉你的位置和有关它的信息,如果它没有安装,它说模块不可用
如果它不可用,默认情况下python不会附带,在这种情况下,你可以检查你在哪里找到它的下载信息
对于一个纯python模块,你可以通过查看module.__file__找到源代码。 然而,datetime模块是用C语言编写的,因此datetime模块是用C语言编写的。__file__指向一个.so文件(没有datetime. so文件)。__file__在Windows上),因此,你不能看到源代码。
如果你下载一个python源tarball并提取它,模块的代码可以在modules子目录中找到。
例如,如果你想找到python 2.6的datetime代码,你可以查看
Python-2.6/Modules/datetimemodule.c
你也可以在github上找到这个文件的最新版本 https://github.com/python/cpython/blob/main/Modules/_datetimemodule.c
sys。Path list包含在运行时搜索模块的目录列表:
python -v
>>> import sys
>>> sys.path
['', '/usr/local/lib/python25.zip', '/usr/local/lib/python2.5', ... ]
如果你没有使用解释器,那么你可以运行下面的代码:
import site
print (site.getsitepackages())
输出:
['C:\\Users\\<your username>\\AppData\\Local\\Programs\\Python\\Python37', 'C:\\Users\\<your username>\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages']
Array中的第二个元素将是包的位置。在这种情况下:
C:\Users\<your username>\AppData\Local\Programs\Python\Python37\lib\site-packages