什么是python的site-packages目录?

时间:2015-07-13 13:25:15

标签: python

在各种Python相关文章中提到了目录site-packages。它是什么?怎么用?

4 个答案:

答案 0 :(得分:40)

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

  • 有标准位置:

Unix(纯):prefix/lib/pythonX.Y/site-packages

Unix(非纯):exec-prefix/lib/pythonX.Y/site-packages

Windows:prefix\Lib\site-packages

(纯意味着模块只使用python代码。非纯可以包含c / c ++代码)

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

  • 一篇非常有用的文章:https://docs.python.org/2/install/

答案 1 :(得分:17)

site-packages只是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-packages'

答案 2 :(得分:17)

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

可以使用以下命令找到用户软件包文件夹的位置:

python -m site --user-site

这将打印如下内容:

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

当您不使用--user选项和pip 时,该软件包将安装在由以下内容提供的全局文件夹中:

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

这将打印如下内容:

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

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

答案 3 :(得分:0)

在我的 CentOS7.9 Linux(RedHat 克隆版)上,它位于 ~/.local/lib/python3.9/site-packages/ 中,无需将其包含在 PYTHONPATH 变量中。