我该如何学习一个给定的Python模块源文件安装在哪里?在Windows和Linux上的方法是否不同?
我尝试查找特定的datetime
模块的源代码,但我也对更通用的答案感兴趣。
在Python 3.2中,您现在可以使用来自dis模块的code_info()
,请参见:
http://docs.python.org/dev/whatsnew/3.2.html#dis
看看这个巧妙的“cdp”命令,它可以跳转到包含指定Python模块源代码的目录:[链接]
cdp () {
cd "$(python -c "import os.path as _, ${1}; \
print _.dirname(_.realpath(${1}.__file__[:-1]))"
)"
}
从终端检查是否安装了多个Python版本的另一种方法。
$ python3 -m pip show pyperclip
位置:/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
$ python -m pip show pyperclip
位置:/Users/umeshvuyyuru/Library/Python/2.7/lib/python/site-packages
如果有人需要现在的答案更新,我在使用 Python 3.9,并使用 Pip 管理软件包。只需使用 pip show
命令,例如:
pip show numpy
它将为您提供所有细节,包括pip存储所有其他软件包的位置。
/usr/lib/python2.7/dist-packages/numpy
对于那些喜欢GUI解决方案的人:如果您正在使用Spyder等图形用户界面(Anaconda安装的一部分),则只需右键单击模块名称(例如“import csv”中的“csv”)并选择“转到定义” - 这将打开文件,但还可以在顶部看到精确的文件位置(“C:....csv.py”)
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']
C:\Users\<your username>\AppData\Local\Programs\Python\Python37\lib\site-packages
str()
是对屏幕截图中所做操作更准确的描述,此解决方案与IDE无关。 - mousetailgrep
和awk
工具。
我发现这在bash shell中有效。
pip show <任意已安装的包> | grep Location | awk -F': ' '{print $2}'
这个想法是过滤结果中的模块路径。$pip show pygments
Name: Pygments
Version: 2.16.1
Summary: Pygments is a syntax highlighting package written in Python.
Home-page: None
Author: None
Author-email: Georg Brandl <georg@python.org>
License: BSD-2-Clause
Location: $USER/.local/lib/python3.8/site-packages
Requires: