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

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

18个解决方案

618 votes

>>> import site; site.getsitepackages()

['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

(或只是site.getsitepackages()[0]的第一项)

eudoxos answered 2018-12-27T03:42:25Z

298 votes

从“如何安装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())

Daryl Spitzer answered 2018-12-27T03:42:53Z

202 votes

有两种类型的站点包目录,全局和每用户。

运行时,全局站点包(“dist-packages”)目录列在pip list --user中:

pip list --user

有关更简洁的列表,请从Python代码中的站点模块运行pip list --user:

pip list --user

注意:由于virtualenvs的getitepackages不可用,但上面的pip list --user将正确列出virtualenv的site-packages目录。

每个用户的站点包目录(PEP 370)是Python安装本地包的地方:

pip list --user

如果这指向不存在的目录,请检查Python的退出状态,并参阅pip list --user以获取解释。

提示:运行pip list --user或pip freeze --user会为您提供所有已安装的每个用户站点包的列表。

Peterino answered 2018-12-27T03:42:03Z

97 votes

对于Ubuntu,

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

...是不正确的。

它会指向/usr/local/lib/pythonX.X/dist-packages

此文件夹仅包含操作系统自动安装的程序包以供程序运行。

在ubuntu上,包含通过setup_tools \ easy_install \ pip安装的软件包的site-packages文件夹将在/usr/local/lib/pythonX.X/dist-packages

如果用例与安装或读取源代码相关,则第二个文件夹可能更有用。

如果您不使用Ubuntu,您可能会安全地将第一个代码框复制粘贴到终端中。

David Hollander answered 2018-12-27T03:43:52Z

63 votes

这对我有用:

python -m site --user-site

Ramashri answered 2018-12-27T03:44:13Z

22 votes

假设你已经安装了'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,你可以做同样的事情。

这是雪豹。 但我认为它也应该起作用。

Sumod answered 2018-12-27T03:44:47Z

21 votes

正如其他人所说,site-packages具有相关设置:

import distutils.sysconfig

print distutils.sysconfig.get_python_lib()

...虽然默认的site-packages做了一些更粗糙的事情,在下面解释:

import sys, os

print os.sep.join([sys.prefix, 'lib', 'python' + sys.version[:3], 'site-packages'])

(它还添加了site-packages并为sys.exec_prefix添加了两个路径,如果常量不同的话)。

那就是说,背景是什么? 你不应该直接搞乱你的site-packages; setuptools / distutils将用于安装,并且您的程序可能在virtualenv中运行,其中您的pythonpath完全是用户本地的,因此它不应该直接使用系统站点包。

Charles Duffy answered 2018-12-27T03:45:28Z

15 votes

在基于Debian的系统中安装python安装的本机系统包可以在以下位置找到:

/usr/lib/python2.7/dist-packages/

在OSX中 - pip

通过使用这个小代码:

from distutils.sysconfig import get_python_lib

print get_python_lib()

但是,可以在以下位置找到通过pip安装的软件包列表:

在/ usr/ local / bin目录/

或者可以简单地编写以下命令来列出python包所在的所有路径。

>>> import site; site.getsitepackages()

['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

注意:位置可能会因您的操作系统而异,例如在OSX中

>>> import site; site.getsitepackages()

['/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/site-python', '/Library/Python/2.7/site-packages']

fnatic_shank answered 2018-12-27T03:46:33Z

13 votes

所有答案(或:反复重复的相同答案)都不充分。 你想要做的是:

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或其他dists的问题,但是因为它与easy_install默认使用的dir完全相同,所以在easy_install工作的地方(因此,无处不在,甚至是mac)都可能是正确的。 玩得开心。 注意:原始代码中有许多脏话。

cheater answered 2018-12-27T03:47:01Z

11 votes

附注:当存在多个site-packages目录时(根据本文的建议),建议的解决方案(distutils.sysconfig.get_python_lib())不起作用。 它只返回主要的site-packages目录。

唉,我也没有更好的解决方案。 Python似乎没有跟踪site-packages目录,只跟踪它们中的包。

Vladimir Vagaytsev answered 2018-12-27T03:47:29Z

9 votes

这对我有用。它将为您提供dist-packages和site-packages文件夹。如果文件夹不在Python的路径上,则不会无论如何,你做得很好。

import sys;

print [f for f in sys.path if f.endswith('packages')]

输出(Ubuntu安装):

['/home/username/.local/lib/python2.7/site-packages',

'/usr/local/lib/python2.7/dist-packages',

'/usr/lib/python2.7/dist-packages']

just_an_old_guy answered 2018-12-27T03:47:57Z

8 votes

已经提到get_python_lib函数的附加说明:在某些平台上,不同的目录用于特定于平台的模块(例如:需要编译的模块)。 如果您将plat_specific=True传递给该函数,则会获得特定于平台的软件包的站点软件包。

Armin Ronacher answered 2018-12-27T03:48:19Z

7 votes

from distutils.sysconfig import get_python_lib

print get_python_lib()

Florian Bösch answered 2018-12-27T03:48:35Z

7 votes

这应该适用于虚拟环境中的所有分布,因为它具有“低技术”性质。 os模块总是驻留在'site-packages'的父目录中

import os; print(os.path.dirname(os.__file__) + '/site-packages')

要将dir更改为site-packages目录,我使用以下别名(在* nix系统上):

alias cdsp='cd $(python -c "import os; print(os.path.dirname(os.__file__))"); cd site-packages'

Pyramid Newbie answered 2018-12-27T03:49:03Z

2 votes

回答旧问题。 但是为此使用ipython。

pip install ipython

ipython

import imaplib

imaplib?

这将给出关于imaplib包的以下输出 -

Type: module

String form:

File: /usr/lib/python2.7/imaplib.py

Docstring:

IMAP4 client.

Based on RFC 2060.

Public class: IMAP4

Public variable: Debug

Public functions: Internaldate2tuple

Int2AP

ParseFlags

Time2Internaldate

Sahil Agarwal answered 2018-12-27T03:49:32Z

2 votes

现代stdlib方式使用sysconfig模块,可在2.7和3.2+版本中使用。 Python目前使用八个路径(docs):

stdlib:包含非特定于平台的标准Python库文件的目录。

platstdlib:包含特定于平台的标准Python库文件的目录。

platlib:特定于站点的平台特定文件的目录。

purelib:特定于站点的非平台特定文件的目录。

include:非平台特定头文件的目录。

platinclude:特定于平台的头文件的目录。

scripts:脚本文件的目录。

data:数据文件的目录。

在大多数情况下,发现此问题的用户会对'purelib'路径感兴趣(在某些情况下,您可能也对'platlib'感兴趣)。 与目前接受的答案不同,这种方法不应该是错误的,这取决于你是否激活了virtualenv。

在系统级(这是mac OS上的Python 3.7.0):

>>> import sysconfig

>>> sysconfig.get_paths()['purelib']

'/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages'

有了一个venv,你会得到这样的东西

>>> import sysconfig

>>> sysconfig.get_paths()['purelib']

'/private/tmp/.venv/lib/python3.7/site-packages'

shell脚本也可用于显示这些详细信息,您可以通过执行sysconfig作为模块来调用:

python -m sysconfig

注意:sysconfig(源代码)不要与这里的其他几个答案中提到的distutils.sysconfig子模块(源)相混淆。 这是一个完全不同的模块,它缺少上面讨论的get_paths功能。

wim answered 2018-12-27T03:51:18Z

0 votes

对于我正在处理的项目,我必须做一些稍微不同的事情:找到相对于基本安装前缀的相对site-packages目录。 如果site-packages文件夹在/Lib/site-packages中,我想要/lib/python3.6/site-packages部分。 事实上,我遇到site-packages在/usr/lib64中的系统,并且接受的答案对这些系统不起作用。

与骗子的答案类似,我的解决方案深入探究了Distutils的内涵,找到了实际在/Lib/site-packages内部传递的路径。想到我不希望任何人再次想到这一点,真是太痛苦了。。

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。

MultipleMonomials answered 2018-12-27T03:51:53Z

0 votes

如果已经添加到PYTHONPATH,您也可以执行类似的操作

import sys

print('\n'.join(sys.path))

filtfilt answered 2018-12-27T03:52:15Z

如何找到自己的python位置_安装 - 如何找到Python site-packages目录的位置?相关推荐

  1. python安装不了是什么问题_安装不上python的模块怎么办?别怕,我这有妙招!

    之前我们介绍过如何在Python中安装第三方的包: Python以第三方包丰富而著称,你想要的功能几乎都可以通过pip命令安装,避免什么都要自己重新造轮子尬尴. 但是pip安装有两个常见问题,第一是下 ...

  2. pip 离线安装_安装不上python的模块怎么办?别怕,我这有妙招!

    之前我们介绍过如何在Python中安装第三方的包: Python以第三方包丰富而著称,你想要的功能几乎都可以通过pip命令安装,避免什么都要自己重新造轮子尬尴. 但是pip安装有两个常见问题,第一是下 ...

  3. python下载_安装_配置_以及第一行python程序---python工作笔记009

    然后我们再来看python的下载安装和配置 感觉在所有编程语言中,Python的 安装是最简单的 www.python.org进入 去看到有个downloads 然后,选择下载windows版的 然后 ...

  4. 跳一跳python刷分_微信跳一跳python怎么刷分 python脚本刷分技巧

    随着微信跳一跳流行,很多小伙伴都想要得到高分,今天小编为大家带来的是通过python脚本来实现刷分,比较适合一些更专业人员来进行刷分.6JE亚风软件站_提供免费绿色软件下载_手机电脑软件下载 微信跳一 ...

  5. python编辑器_推荐一款Python编辑器,集Pycharm和Sublime优点于一身的王者

    编程里面的编辑器就像是武林大会里面的高手,每一年都有新秀,黑马出现!比如有练习霸道的天罡之气的榜首Pycharm,力量雄厚霸道战斗力极强,但是对斗气消耗很大,占内存大而且启动速度有点慢!还有练习灵巧的 ...

  6. python 下载及安装-CentOS下python的下载及安装

    针对" CentOS下python的下载及安装 "的问题,下面由IT产品经理-陆亦晓为您解答: Python这门编程语言在数据分析.数据发掘以及服务端开发等方面都有非常好的使用,我 ...

  7. 使用python数据分析_我如何使用Python分析《权力游戏》

    使用python数据分析 By Rocky Kev 洛基·凯夫(Rocky Kev) I wanted to learn Python for a long time, but I could nev ...

  8. linux下载哪个python版本-Linux安装多个Python版本

    服务器上的Python版本太老了,需要安装一个新的Python版本,才能跑我的代码.因为环境的需要,但是又不能卸载老的版本,所以安装一个新的,使用软链来进行升级. 使用系统自带的yum,apt-get ...

  9. python库_计算机二级教程 Python语言程序设计,第10章python第三方库概览

    第十章学习知识导图 考点主要是: 1) 第三方库的获取和安装 2) 脚本程序转变为可执行程序的第三方库 : PyInstaller库(必选) 3) 第三方库: jieba库(必选).wordcloud ...

最新文章

  1. 安装 Fedora 21 工作站后要做的10件事情
  2. keras cnn注意力机制_TensorFlow、PyTorch、Keras:NLP框架哪家强
  3. golang结构体数组
  4. idea在Terminal中使用maven指令
  5. 腾讯面试题 TCP/IP协议四个层次
  6. python2转python3代码_python2代码批量转为python3代码
  7. c语言编程算法模板,C语言编程算法精选.doc
  8. 专家称 AI 可以在 120 年内接管人类的所有工作
  9. 解析 WordPress 插件机制
  10. KVM的安装和配置命令详解
  11. Unity调用动态链接库dll和so
  12. Jmeter学习笔记ONE
  13. css实现剪切蒙版,CSS3“蒙版(剪切路径)”: clip-path
  14. matlab学习技巧之semilogx和semilogy函数
  15. 做word计算机海报图片,怎么用word制作海报 海报制作方法
  16. 等了十年的微信功能终于成真
  17. 【GD32F310开发板试用】PWM+TMC5160驱动步进电机
  18. DDR、DDR2、DDR3、DDR4、LPDDR区别
  19. linux系统下如何修改开机图片,Ubuntu Kylin下修改登录背景,用户头像,开机动画及自动更换壁纸...
  20. visual studio 错误:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include StdAfx.h”?

热门文章

  1. 解析中国天气网页面获取七日天气 (Java, Python)
  2. forcats | fct_reorder2函数功能详解及其在可视化中的应用
  3. python实现两个txt文件提取不同的数据
  4. 华为鲲鹏HCIA-Kunpeng Application Developer V1.0考试样题
  5. 深度解析拉卡拉支付产品架构
  6. CISSP|CISA|SSCP| GSECK考题模拟网站
  7. 日本蜡烛图分析技术:从入门到精通:读书笔记
  8. 可信执行环境TEE介绍及在区块链领域的应用
  9. 谈代码整洁之道,如何写出优雅的代码
  10. 解决 macOS HomeBrew 下载缓慢的问题