我如何找到我的站点包目录的位置?
当前回答
对于Ubuntu,
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
...不正确。
它会指向/usr/lib/pythonX.X / dist-packages
此文件夹仅包含操作系统为运行程序自动安装的包。
在ubuntu上,包含通过setup_tools\easy_install\pip安装的软件包的site-packages文件夹将位于/usr/local/lib/pythonX.X / dist-packages
如果用例与安装或阅读源代码有关,那么第二个文件夹可能更有用。
如果您不使用Ubuntu,那么将第一个代码框复制粘贴到终端中可能是安全的。
其他回答
对于我正在从事的一个项目,我必须做一些稍微不同的事情:找到相对于基本安装前缀的相对site-packages目录。如果site-packages文件夹在/usr/lib/python2.7/site-packages中,我想要/lib/python2.7/site-packages部分。事实上,我遇到过站点包在/usr/lib64中的系统,接受的答案在这些系统上不起作用。
与作弊者的答案类似,我的解决方案深入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之类的东西。
假设你已经安装了“django”包。导入它并输入dir(django)。它将向您展示该模块的所有函数和属性。输入python解释器-
>>> import django
>>> dir(django)
['VERSION', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'get_version']
>>> print django.__path__
['/Library/Python/2.6/site-packages/django']
如果您已经安装了mercurial,您也可以做同样的事情。
这是给雪豹的。但我认为它在一般情况下也适用。
附注:建议的解决方案(distutils.sysconfig.get_python_lib())在存在多个site-packages目录(本文推荐)时不起作用。它将只返回主site-packages目录。
唉,我也没有更好的解决办法。Python似乎不跟踪站点包目录,只跟踪其中的包。
对于Ubuntu,
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
...不正确。
它会指向/usr/lib/pythonX.X / dist-packages
此文件夹仅包含操作系统为运行程序自动安装的包。
在ubuntu上,包含通过setup_tools\easy_install\pip安装的软件包的site-packages文件夹将位于/usr/local/lib/pythonX.X / dist-packages
如果用例与安装或阅读源代码有关,那么第二个文件夹可能更有用。
如果您不使用Ubuntu,那么将第一个代码框复制粘贴到终端中可能是安全的。
前面提到的get_python_lib函数的另一个注意事项是:在某些平台上,不同的目录用于特定于平台的模块(例如:需要编译的模块)。如果将plat_specific=True传递给函数,则可以获得平台特定包的站点包。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录