Python 中的 site.getsitepackages() 返回的三个目录分别代表什么?
site.getsitepackages() ['/usr/lib64/python3.4/site-packages', '/usr/lib/python3.4/site-packages', '/usr/lib/site-python']
[1]+ Stopped python3 shenjianlin[@iZm5eirdrun3ajzx3iii0wZ](/user/iZm5eirdrun3ajzx3iii0wZ):~$ cd /usr/lib/python3.4/site-packages/ shenjianlin[@iZm5eirdrun3ajzx3iii0wZ](/user/iZm5eirdrun3ajzx3iii0wZ):/usr/lib/python3.4/site-packages$ ls apache_libcloud-2.0.0-py3.4.egg-info flask pip six-1.10.0-py3.4.egg-info backports_abc-0.5-py3.4.egg-info Flask-0.12.dist-info pip-10.0.1.dist-info six-1.11.0.dist-info backports_abc.py future pipenv six.py bleach future-0.16.0.dist-info pipenv-10.1.0.dist-info sklearn-0.0.dist-info bleach-1.5.0.dist-info html5lib pkg_resources tensorboard certifi html5lib-0.9999999-py3.4.egg-info pybind11 tensorflow certifi-2018.1.18.dist-info idna pybind11-2.2.1.dist-info tensorflow_tensorboard-0.4.0.dist-info chardet idna-2.6.dist-info pycache tests chardet-3.0.4.dist-info itsdangerous-0.24.dist-info pyparsing-2.2.0.dist-info tflearn click itsdangerous.py pyparsing.py tflearn-0.3.2.dist-info click-6.7.dist-info jieba pyquery tqdm clonevirtualenv.py jieba-0.39.dist-info pyquery-1.4.0.dist-info tqdm-4.23.4.dist-info cssselect jinja2 python_dateutil-2.7.3.dist-info urllib3 cssselect-1.0.3.dist-info Jinja2-2.10.dist-info pytz urllib3-1.22.dist-info cycler-0.10.0.dist-info Jinja2-2.8-py3.4.egg-info pytz-2018.4.dist-info virtualenv-15.1.0.dist-info cycler.py libcloud requests virtualenv_clone-0.2.6.dist-info dateutil libfuturize requests-2.18.4.dist-info virtualenv.py easy-install.pth libpasteurize salt virtualenv_support easy_install.py _markerlib salt-2018.3.0-py3.4.egg-info wheel enum markupsafe selenium wheel-0.30.0.dist-info enum34-1.1.6.dist-info MarkupSafe-1.0.dist-info selenium-3.12.0.dist-info xlrd external past setuptools xlrd-1.1.0.dist-info fake_useragent pew setuptools-19.2-py3.4.egg-info yt_common fake_useragent-0.1.10.dist-info pew-1.1.2.dist-info setuptools-38.4.0.dist-info
Python 中的 site.getsitepackages() 返回的三个目录分别代表什么?
在Python中,site.getsitepackages()返回一个列表,通常包含三个目录路径,它们分别代表:
-
系统级site-packages目录:这是全局的包安装目录,通常形如
/usr/lib/python3.x/site-packages(Linux)或C:\Python3x\Lib\site-packages(Windows)。通过pip install(不加--user)安装的包会放在这里,所有用户和项目都能访问。 -
用户级site-packages目录:这是当前用户的包安装目录,通常形如
~/.local/lib/python3.x/site-packages(Linux)或C:\Users\用户名\AppData\Roaming\Python\Python3x\site-packages(Windows)。通过pip install --user安装的包会放在这里,仅限当前用户使用。 -
虚拟环境site-packages目录(如果存在):如果你在虚拟环境(如venv、conda)中运行Python,这里会返回虚拟环境独立的site-packages路径,例如
/path/to/venv/lib/python3.x/site-packages。这是虚拟环境隔离性的关键,所有在虚拟环境中安装的包都位于此。
简单来说,这三个目录分别对应系统全局、用户个人和虚拟环境三个层次的包存储位置。

