更改Python的pip install 默认安装依赖路径方法详解


Posted in Python onOctober 27, 2018

前言

声明:python版本3.6,以下讨论的Python也都是适用于3.x版本

在实际使用安装python的pip安装 依赖库是非常的便捷的。

而且一般大家使用的都是安装Anaconda 来学习和实践python项目。

我们通常都是直接就是使用

pip install ****

其中****代表就是安装的依赖库名或者包名。

但是简单的背后就是,我们的最重要的系统盘C盘都是逐渐满了。更关键是你满完之后还不好去删除或者将一些依赖库放在别的盘的路径下,这就是一件非常糟糕的事情了。

所以今天,为了拯救C盘强迫症的自己,我是必须要好好折腾折腾,将pip install 安装的依赖库和包名都是放在Anaconda(别的盘中)目录下的site-packages中去(全部归到这个类下)。

总体步骤

第一步:先查看自己的默认安装路径到底是在哪?列出全局的packages包的安装路径在哪?

1. 按键(win+R) ->打开cmd命令窗口。

2.键入

python -m site

得到这样的结果:

sys.path = [
 'C:\\Users\\Administrator',
 'F:\\Anaconda\\python36.zip',
 'F:\\Anaconda\\DLLs',
 'F:\\Anaconda\\lib',
 'F:\\Anaconda',
 'F:\\Anaconda\\lib\\site-packages',
 'F:\\Anaconda\\lib\\site-packages\\win32',
 'F:\\Anaconda\\lib\\site-packages\\win32\\lib',
 'F:\\Anaconda\\lib\\site-packages\\Pythonwin',
]
USER_BASE: 'C:\\Users\\Administrator\\AppData\\Roaming\\Python' (exists)
USER_SITE: 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python36\\site-packages' (exists)
ENABLE_USER_SITE: True

这里有几点说明:

①我们看见这里的USER_BASE 和USER_SITE其实就是用户自定义的启用Python脚本和依赖安装包的基础路径。

②其中USER_BASE表示就是在C盘这个目录下的Python.exe启动程序路径以及pip,esay-install,markdown等脚本,(我们已经是安装好了Anaconda Python,这个C盘又是什么鬼,不想用它啊),而这个C盘的Python.exe启动程序路径其实就是我们在安装Anaconda的时候一个分身,更准确的说,其实就是简单的Python程序,并不是什么IDE这种级别的可以类似Eclipse这样去操作编译丰富的功能窗口,只是简单类似shell的一样的存在。

所以要改。

③其中的USER_SITE其实就是用户如果调用C盘路径下的python.exe中的脚本pip文件去下载,就会将site-package的默认安装到这个C盘路径下。

并且大家有时候可能在使用 pip install 命令行安装一些依赖的时候,总是会提示报错“PermissionError:[WinError 5 ] Denied Excess."C"\\......."这样的类似权限拒绝访问,并且提示你无管理员权限的话,使用pip -install ... + [user-site] 这样的字眼。”

python -m site --user-site

而我自己也曾经试验过了,如果是权限问题拒绝安装访问的话,安装cmd命令提示框中提示的user-site使用方法,就能解决权限安装问题。

所以,user_site其实就是个人的site-packages默认安装路径了。而如果使用的是Anaconda 目录下的Scripts中的pip 安装依赖库或包等,则是安装在Anaconda路径下的site-packages中去。

第二步:确认了是什么原因,那么就要去对应的配置文件改了。

因为出现了类似以下

sys.path = [
 'C:\\Users\\Administrator',
 'F:\\Anaconda\\python36.zip',
 'F:\\Anaconda\\DLLs',
 'F:\\Anaconda\\lib',
 'F:\\Anaconda',
 'F:\\Anaconda\\lib\\site-packages',
 'F:\\Anaconda\\lib\\site-packages\\win32',
 'F:\\Anaconda\\lib\\site-packages\\win32\\lib',
 'F:\\Anaconda\\lib\\site-packages\\Pythonwin',
]
USER_BASE: 'C:\\Users\\Administrator\\AppData\\Roaming\\Python' (exists)
USER_SITE: 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python36\\site-packages' (exists)
ENABLE_USER_SITE: True

那么肯定是有对应的配置文件去读取的,我们去寻找修改即可。

cmd命令行窗口下键入:

python -m site -help

就会出现

C:\Users\Administrator>python -m site -help
F:\Anaconda\lib\site.py [--user-base] [--user-site]
 
Without arguments print some useful information
With arguments print the value of USER_BASE and/or USER_SITE separated
by ';'.
 
Exit codes with --user-base or --user-site:
 0 - user site directory is enabled
 1 - user site directory is disabled by user
 2 - uses site directory is disabled by super user
  or for security reasons
 >2 - unknown error

可见,管理这个文件竟然就是Anaconda目录下的site.py文件,之前说C盘中的Python是它的分身还真没说错了。

找到

F:\Anaconda\lib\site.py

修改其中的参数

更改Python的pip install 默认安装依赖路径方法详解

实际修改这两个就好了。

注意

USER_SITE = "F:\Anaconda\lib\site-packages"

这个是你要安装下载的site-packages的路径。

而执行下载的pip等脚本路径是由USER_BASE决定,并且一定一定要换到同样的有pip脚本的路径下,哪怕你路径也请写到

F:\Anaconda

当然这里最好写成

USER_BASE = "F:\Anaconda\Scripts"

更改Python的pip install 默认安装依赖路径方法详解

可以看见Scripts就是这些执行程序和脚本位置了。

第三步:测试安装,保证你修改之后成功有效。

测试键入

pip install numpy

出现,在这个路径下其实已经拥有了满足的依赖包和库了(之前已经安装过了,今天只是将步骤总结下),所以证明是修改成功了。

更改Python的pip install 默认安装依赖路径方法详解

以上这篇更改Python的pip install 默认安装依赖路径方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python将图片文件转换成base64编码的方法
Mar 14 Python
Python编程生成随机用户名及密码的方法示例
May 05 Python
Python编程之微信推送模板消息功能示例
Aug 21 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
Python文件操作基本流程代码实例
Dec 11 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
Pandas数据离散化原理及实例解析
Nov 16 Python
python global和nonlocal用法解析
Feb 03 Python
Python之Matplotlib文字与注释的使用方法
Jun 18 Python
Python列表嵌套常见坑点及解决方案
Sep 30 Python
python RSA加密的示例
Dec 09 Python
这样写python注释让代码更加的优雅
Jun 02 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 #Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 #Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 #Python
用Python实现筛选文件脚本的方法
Oct 27 #Python
基于python指定包的安装路径方法
Oct 27 #Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 #Python
Python利用递归实现文件的复制方法
Oct 27 #Python
You might like
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
PHP新手用的Insert和Update语句构造类
2012/03/31 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
jQuery简单操作cookie的插件实例
2016/01/13 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
20行python代码实现人脸识别
2019/05/05 Python
python处理大日志文件
2019/07/23 Python
Python中six模块基础用法
2019/12/08 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
国际贸易专业推荐信
2013/11/15 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
员工考勤管理制度
2015/08/06 职场文书
SQLServer中exists和except用法介绍
2021/12/04 SQL Server