如何找到我的Python site-packages目录的位置?

1394

我该如何找到我的site-packages目录的位置?


120
如果您只想查找一个软件包的确切位置,则可以使用 pip show <软件包名称> - joshuakcockrell
22个回答

2

我曾经为一个项目做了一些微调:找到相对于基本安装前缀的相对站点包目录。如果站点包文件夹在/usr/lib/python2.7/site-packages中,我想要的是/lib/python2.7/site-packages部分。实际上,我遇到过site-packages/usr/lib64中的系统,而被接受的答案在这些系统上并不起作用。

与cheater的答案类似,我的解决方案深入Distutils的内部,以找到实际在setup.py中传递的路径。这个过程非常痛苦,我不希望任何人再次尝试去弄清楚这个问题。

import sys
import os
from distutils.command.install import INSTALL_SCHEMES

if os.name == 'nt':
    scheme_key = 'nt'
else:
    scheme_key = 'unix_prefix'

print(INSTALL_SCHEMES[scheme_key]['purelib'].replace('$py_version_short', (str.split(sys.version))[0][0:3]).replace('$base', ''))

那应该会打印出类似于 /Lib/site-packages 或者 /lib/python3.6/site-packages 的内容。

2

还有一点很有用但未被提及,如果你安装了两个版本的Python,例如3.8和3.5,你的计算机上可能会有两个名为site-packages的文件夹。这种情况下,你可以使用以下命令指定Python版本:

py -3.5 -c "import site; print(site.getsitepackages()[1])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接