"pip install"安装的包位于何处?
有两种类型的site-packages目录,全局和用户专用。
-
全局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"])'
-
用户专用site-packages目录(PEP 370)是Python安装本地包的地方:
python -m site --user-site
如果这指向一个不存在的目录,请检查Python的退出状态,并查看
python -m site --help
以获取解释。提示:运行
pip list --user
或pip 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