Python 的站点包目录是什么?

在许多与 Python 相关的文章中都提到了目录 site-packages。它是什么? 如何使用它?

218732 次浏览

site-packages是手工构建的 Python 包的 目标目录。在从源代码构建和安装 Python 包时(使用 蒸馏酒,可能通过执行 python setup.py install) ,默认情况下会在 site-packages中找到已安装的模块。

标准地点包括:

  • Unix (纯)
  • Unix (非纯) : exec-prefix/lib/pythonX.Y/site-packages
  • 视窗: prefix\Lib\site-packages

1 纯的意味着模块只使用 Python 代码,不纯洁也可以包含 C/C + + 代码。

site-packages默认是 Python搜索路径的一部分,因此安装在那里的模块可以在以后轻松地导入。


有用的资料

Site-package 只是 Python 安装其模块的位置。

不需要“查找”,python 自己知道在哪里可以找到它,这个位置是 PYTHONPATH (sys.path)的 一直都是部分。

通过编程,你可以这样找到它:

import sys
site_packages = next(p for p in sys.path if 'site-packages' in p)
print site_packages

’/Users/foo/. envs/env1/lib/python2.7/site-package’

当您在 pip 中使用 --user选项时,软件包将安装在用户的文件夹中而不是全局文件夹中,您不需要使用管理员权限运行 pip 命令。

用户包文件夹的位置可以通过以下方法找到:

python -m site --user-site

这将打印类似于:

C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages

当您不使用带 pip --user选项时,该包将安装在由下列人员给出的全局文件夹中:

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

这将打印类似于:

['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'

注意: 以上打印的值适用于安装了默认 Anaconda 4.x 的 On Windows 10。

在我的 CentOS7.9 Linux (一个 RedHat 克隆)中,它位于 ~/.local/lib/python3.9/site-packages/中,没有必要将它包含在 PYTHONPATH 变量中。

根据 给你:

Python 安装在模块中有一个站点包目录 此目录是用户安装包的位置 掉了。

虽然它不能解释 为什么选择单词 < em > site ,但它能解释 这个目录的目的是什么