在 Python 中,所有通过 pip 安装的包都会被放到某个 “site-packages” 目录下,这个目录位于 Python 的安装路径或虚拟环境目录里。下面是几种常见环境下的安装路径及查找、修改方法。
1. 常见的 pip 包安装路径
-
系统全局安装(Linux/macOS)
-
路径通常形如:
/usr/local/lib/python<版本>/dist-packages /usr/lib/python<版本>/site-packages -
例如,Python 3.9 可能在:
/usr/local/lib/python3.9/dist-packages
-
-
系统全局安装(Windows)
-
路径通常在:
C:\Users\<用户名>\AppData\Local\Programs\Python\Python<版本>\Lib\site-packages -
也可能在 Python 安装目录下的
Lib\site-packages。
-
-
虚拟环境(venv/virtualenv)
-
如果你在某个项目目录下执行了:
python -m venv .venv source .venv/bin/activate # (Linux/macOS) .venv\Scripts\activate # (Windows) pip install 包名
-
那么包会安装在:
<项目目录>/.venv/lib/python<版本>/site-packages或者 Windows 下的
<项目目录>\.venv\Lib\site-packages
-
-
查看某个包的实际安装位置
可以用:pip show 包名
输出里会有一行
Location: /…/site-packages,指明这个包所在的目录。
2. 修改已安装库的代码
不建议 直接在
site-packages里生搬修改,因为每次升级或重装都会丢失改动。推荐的做法是“开发模式(editable install)”或直接克隆源码来维护:
方法 A:使用 “开发模式” 安装
-
克隆官方仓库(或你想改的那个版本)
git clone https://github.com/xxx/your-package.git cd your-package -
在源码目录下启用开发模式安装
pip install --editable .这样,Python 在导入该包时会直接引用你这个源码目录里的文件。
-
修改源码
直接在本地your-package/…/*.py文件里改动,保存后立即生效,无需再次pip install。
方法 B:直接编辑 site-packages(临时反馈)
-
定位到包所在目录:
pip show 包名 # 读取 Location,然后打开 .../site-packages/包名 目录 -
打开对应的
.py文件,修改后保存。 -
重启你的 Python 程序或服务(尤其是 web 服务),让改动生效。
⚠️ 缺点:下次pip install --upgrade 包名或清空环境并重装时,你的修改会被覆盖。
方法 C:Fork + 发布私有版本
-
在 GitHub(或其它平台)Fork 官方仓库。
-
在你的 Fork 上做修改并打 tag(例如
v1.2.3-myfix)。 -
在项目中引用你的版本:
pip install git+https://github.com/你/your-package.git@v1.2.3-myfix
或者在
requirements.txt写:git+https://github.com/你/your-package.git@v1.2.3-myfix#egg=your-package
小结
-
安装路径:看系统或虚拟环境的
…/site-packages目录;用pip show快速定位。 -
改动库代码:
- 开发模式(
pip install -e .)最安全,便于持续维护; - 直接编辑 适合临时调试;
- Fork + 私有发布 适合长期、多人协作的改动。
- 开发模式(
这样,你就可以既知道库装在哪里,又能以最合适的方式去修改它的源码了。