"pip install"安装的包位于何处?

28 浏览
0 Comments

"pip install"安装的包位于何处?

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

admin 更改状态以发布 2023年5月23日
0
0 Comments

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

(或者只是使用 site.getsitepackages()[0] 的第一个项目)

0
0 Comments

有两种类型的site-packages目录,全局和用户专用。

  1. 全局site-packages目录(“dist-packages”)在运行以下命令时会列在sys.path中:

     python -m site
    

    为了得到更简要的列表,可以在Python代码中使用site模块中的getsitepackages命令:

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

    注意:在虚拟环境中,使用旧版本的virtualenv时,getsitepackages命令不可用,但上述的sys.path将正确地列出虚拟环境的site-packages目录。在Python 3中,也可以使用sysconfig模块代替:

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

  2. 用户专用site-packages目录(PEP 370)是Python安装本地包的地方:

     python -m site --user-site
    

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

    提示:运行pip list --userpip freeze --user会给出所有已安装的用户专用site-packages的列表。


实用提示

  • .__path__ 可以帮助你确定特定包的位置:(详情)

      $ python -c "import setuptools as _; print(_.__path__)"
      ['/usr/lib/python2.7/dist-packages/setuptools']
    

  • .__file__ 可以帮助你确定特定模块的位置:(区别)

      $ python3 -c "import os as _; print(_.__file__)"
      /usr/lib/python3.6/os.py
    

  • 运行 pip show 可以展示类似 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
    

0