如何找到我的Python site-packages目录的位置?
时间:2020-03-06 14:36:43 来源:igfitidea点击:
如何找到我的site-packages目录的位置?
解决方案
从"如何安装Django"文档(尽管这不仅对Django安装很有用),还可以从Shell中执行以下操作:
python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
出于可读性考虑而格式化(而不是单行使用),其外观如下所示:
from distutils.sysconfig import get_python_lib print(get_python_lib())
from distutils.sysconfig import get_python_lib print get_python_lib()
正如其他人指出的那样,distutils.sysconfig
具有相关的设置:
import distutils.sysconfig print distutils.sysconfig.get_python_lib()
...尽管默认的site.py
做得有些粗略,解释如下:
import sys, os print os.sep.join([sys.prefix, 'lib', 'python' + sys.version[:3], 'site-packages'])
(如果常量不同,它还会添加$$ {sys.prefix} / lib / site-python并添加sys.exec_prefix
的两个路径)。
也就是说,背景是什么?我们不应该直接弄乱" site-packages"; setuptools / distutils将可以进行安装,并且程序可能在virtualenv中运行,其中pythonpath完全是用户本地的,因此也不应假定直接使用系统站点程序包。
已经提到了get_python_lib
函数的添加说明:在某些平台上,不同的目录用于平台特定的模块(例如:需要编译的模块)。如果我们将plat_specific = True
传递给该函数,则会获得针对特定平台的软件包的站点软件包。
旁注:如果存在多个site-packages目录(如本文所建议),则建议的解决方案(distutils.sysconfig.get_python_lib())不起作用。它将仅返回主site-packages目录。 ,我也没有更好的解决方案。 Python似乎并不跟踪站点软件包目录,而只是跟踪其中的软件包。