Pip安装路径与Python安装目录不一致是否有影响,如何修改配置?
问题解答
一、Pip安装路径与Python安装目录不一致的不良影响
正常使用前提下不会出现核心功能问题:你提供的sys.path输出里已经同时包含了Roaming和Local路径下的两个site-packages目录,Python导入第三方包时会自动检索两个路径下的文件,不会出现找不到已安装包的问题。
仅在以下特殊场景会有负面影响:
- 你在同一设备上安装了多个同版本Python实例时,不同实例共用Roaming路径下的包,可能出现版本冲突、依赖不匹配的问题
- 卸载Python时Roaming路径下的包不会被同步删除,残留文件可能导致后续重装同版本Python时出现奇怪的导入异常
- 如果你需要让设备上的所有用户都能使用你安装的第三方包,Roaming路径下的包仅当前登录用户可用,无法满足多用户共用需求
二、修改Pip默认安装路径的操作方案
不要直接删除Roaming路径,该操作不会生效,还可能导致你已经安装在该路径下的包丢失,正确操作方案如下:
临时生效方案
每次执行安装命令时添加--no-user参数,Pip就会自动将包安装到Python安装目录对应的Local路径下,示例命令:
pip install 包名 --no-user
永久生效方案
确实可以通过修改USER_BASE和USER_SITE配置实现,操作步骤:
- 打开Python安装目录下的
lib/site.py文件 - 找到文件中USER_BASE和USER_SITE的定义行,修改为对应Local路径:
USER_BASE = 'C:\\Users\\Jared\\AppData\\Local\\Programs\\Python\\Python39' USER_SITE = 'C:\\Users\\Jared\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages' - 保存文件后执行
python -m site确认配置是否生效即可。
如果需要保留之前已经安装在Roaming路径下的包,直接将该路径下的所有文件复制到新的USER_SITE目录下即可,无需删除原Roaming目录。
注意:后续升级Python版本时
site.py文件会被覆盖,需要重新修改一次配置。
内容的提问来源于stack exchange,提问作者Jared
相关产品推荐
相关产品推荐

