我如何找到我的站点包目录的位置?
当前回答
所有的答案(或者:重复同样的答案)都是不充分的。你要做的是:
from setuptools.command.easy_install import easy_install
class easy_install_default(easy_install):
""" class easy_install had problems with the fist parameter not being
an instance of Distribution, even though it was. This is due to
some import-related mess.
"""
def __init__(self):
from distutils.dist import Distribution
dist = Distribution()
self.distribution = dist
self.initialize_options()
self._dry_run = None
self.verbose = dist.verbose
self.force = None
self.help = 0
self.finalized = 0
e = easy_install_default()
import distutils.errors
try:
e.finalize_options()
except distutils.errors.DistutilsError:
pass
print e.install_dir
最后一行显示了安装目录。适用于Ubuntu,而上面的不能。不要问我关于windows或其他目录的问题,但由于它是easy_install默认使用的完全相同的目录,所以它可能在easy_install工作的任何地方都是正确的(所以,任何地方,甚至mac)。玩得开心。注意:原始代码中有很多脏话。
其他回答
正如其他人所注意到的,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. exe。Prefix}/lib/site-python,为sys. python添加两个路径。Exec_prefix也是,如果常量不同的话)。
也就是说,背景是什么?你不应该直接破坏你的站点包;Setuptools /distutils将用于安装,并且您的程序可能运行在一个virtualenv中,其中您的pythonpath完全是用户本地的,因此它也不应该假设直接使用系统站点包。
您应该尝试这个命令来确定pip的安装位置
Python 2
pip show six | grep "Location:" | cut -d " " -f2
Python 3
pip3 show six | grep "Location:" | cut -d " " -f2
>>> import site; site.getsitepackages()
['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']
(或者只是site.getsitepackages()[0]的第一项)
from distutils.sysconfig import get_python_lib
print get_python_lib()
对于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,那么将第一个代码框复制粘贴到终端中可能是安全的。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用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中获得所有直接子目录