如何找到我的 Python 站点包目录的位置?

新手上路,请多包涵

如何找到我的站点包目录的位置?

原文由 Daryl Spitzer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 785
2 个回答

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

  1. 运行时, 全局 站点包(“ dist-packages ”)目录列在 sys.path 中:
     python -m site

要获得更简洁的列表,请从 Python 代码中的 站点模块 运行 getsitepackages

     python -c 'import site; print(site.getsitepackages())'

注意: 在虚拟环境中 getsitepackages 不适用于 旧版本的 virtualenvsys.path 从上面将正确列出 virtualenv 的 site-packages 目录。在 Python 3 中,您可以改用 sysconfig 模块

     python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])'

  1. 每个用户 的站点包目录( PEP 370 )是 Python 安装本地包的位置:
     python -m site --user-site

如果这指向一个不存在的目录,请检查 Python 的退出状态并查看 python -m site --help 以获得解释。

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


实用技巧

  • <package>.__path__ 让您识别特定包裹的位置:( 详情
     $ python -c "import setuptools as _; print(_.__path__)"
    ['/usr/lib/python2.7/dist-packages/setuptools']

  • <module>.__file__ 让您识别特定模块的位置:( 区别
     $ python3 -c "import os as _; print(_.__file__)"
    /usr/lib/python3.6/os.py

  • 运行 pip show <package> 以显示 Debian 风格的软件包信息:
     $ pip show pytest
    Name: pytest
    Version: 3.8.2
    Summary: pytest: simple powerful testing with Python
    Home-page: https://docs.pytest.org/en/latest/
    Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin and others
    Author-email: None
    License: MIT license
    Location: /home/peter/.local/lib/python3.4/site-packages
    Requires: more-itertools, atomicwrites, setuptools, attrs, pathlib2, six, py, pluggy

原文由 Peterino 发布,翻译遵循 CC BY-SA 4.0 许可协议

>>> import site; site.getsitepackages()
['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

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

原文由 eudoxos 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题