我该如何找到我的site-packages
目录的位置?
我曾经为一个项目做了一些微调:找到相对于基本安装前缀的相对站点包目录。如果站点包文件夹在/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
的内容。还有一点很有用但未被提及,如果你安装了两个版本的Python,例如3.8和3.5,你的计算机上可能会有两个名为site-packages的文件夹。这种情况下,你可以使用以下命令指定Python版本:
py -3.5 -c "import site; print(site.getsitepackages()[1])
pip show <软件包名称>
。 - joshuakcockrell