1. site-packages 文件夹的位置
当我们通过 pip 或其他方式安装一个 Python 包时,这些包的文件就会被复制到 site-packages 文件夹下。
site-packages 文件夹通常位于 Python 的安装目录下的 Lib 文件夹内。具体的路径会根据你使用的操作系统和 Python 版本的不同而有所不同。下面是一些常见操作系统下 site-packages 文件夹的默认位置:
1.1. 在 Windows 系统上
用户目录下的 .site-packages 文件夹: 在安装 Python 后,用户目录下会生成一个隐藏文件夹,其路径通常为:
C:\Users\username\AppData\Roaming\Python\Python版本号\site-packages
C:\Users\username\AppData\Local\Programs\Python\Python版本号\Lib\site-packages。
这个路径是用户级别的,因此每个用户的安装包路径可能有所不同。
系统目录下的 .site-packages 文件夹: 该文件夹位于 Python 的安装目录下,通常为 C:\Python版本号\Lib\site-packages。在这个文件夹中,有些系统级别的 Python 包会被安装,以供所有用户共享使用。
1.2. Linux 或 Mac 系统上
site-packages 文件夹通常位于 Python 的根目录下的 lib 文件夹内。例如,在一般的 Python 3.x 安装中,site-packages 文件夹的路径可能是:/usr/lib/python3/dist-packages/。
1.3. 虚拟环境(conda)上
虚拟环境是一种用于隔离 Python 环境的机制,可以在同一台机器上创建多个独立的 Python 环境。每个虚拟环境都会有自己独立的 .site-packages 文件夹,用于存放该环境下安装的 Python 包。虚拟环境的 .site-packages 通常为虚拟环境文件夹下的Lib\site-packages。
例如: D:*\anaconda3\envs\python310\Lib\site-packages。
2. 查找 site-packages 的安装目录
2.1. 使用 site 模块
Python 的标准库中有一个 site 模块,它可以帮助你找到 site-packages 目录的位置。
import site
print(site.getsitepackages())
这段代码会输出一个列表,其中包含了所有的 site-packages 目录路径。
> python.exe .\demo.py
['D:\\programs\\anaconda3\\envs\\python310', 'D:\\programs\\anaconda3\\envs\\python310\\lib\\site-packages']
2.2. 使用 distutils 模块
另一个可以找到 site-packages 目录的方法是使用 distutils 模块。
import distutils.sysconfig
print(distutils.sysconfig.get_python_lib())
这将输出默认的 site-packages 目录路径。
> python.exe .\demo.py
D:\programs\anaconda3\envs\python310\Lib\site-packages
2.3. 通过命令行
如果你更喜欢使用命令行而不是编写代码,你可以使用以下命令来找到 site-packages 目录:
> python -m site
sys.path = [
'D:\\works\\demo',
'D:\\programs\\anaconda3\\envs\\python310\\python310.zip',
'D:\\programs\\anaconda3\\envs\\python310\\DLLs',
'D:\\programs\\anaconda3\\envs\\python310\\lib',
'D:\\programs\\anaconda3\\envs\\python310',
'D:\\programs\\anaconda3\\envs\\python310\\lib\\site-packages',
]
USER_BASE: 'C:\\Users\\username\\AppData\\Roaming\\Python' (doesn't exist)
USER_SITE: 'C:\\Users\\username\\AppData\\Roaming\\Python\\Python310\\site-packages' (doesn't exist)
ENABLE_USER_SITE: True
参考:
https://worktile.com/kb/ask/102214.html
https://blog.csdn.net/baidu_22713341/article/details/139083851