无root权限时Red Hat Linux下如何用pip安装Python模块到指定目录
错误原因
- 当前执行的
pip为系统全局版本,并非你安装在~/PYTHON路径下的私有pip,全局pip运行时会默认检查系统路径/usr/lib/python2.7/site-packages下的依赖状态,普通用户无修改系统路径文件的权限,因此触发权限报错。 - 即便添加了
--prefix参数,只要调用的是系统全局pip,程序仍会优先关联全局Python解释器的系统路径配置,无法实现完全的路径隔离。
正确安装操作
直接调用你私有路径下的pip执行安装即可,命令如下:
~/PYTHON/bin/pip install matplotlib --prefix=~/PYTHON
如果仍提示依赖冲突,可添加--ignore-installed参数忽略系统已安装的依赖版本,强制在私有路径下安装匹配的依赖:
~/PYTHON/bin/pip install matplotlib --prefix=~/PYTHON --ignore-installed
环境变量配置
要让系统默认优先调用你私有路径下的Python、pip,且能正常识别已安装的第三方模块,需要编辑当前用户的shell配置文件(Red Hat默认bash环境修改~/.bashrc即可),在文件末尾添加如下配置:
# 自定义Python 2.7 执行路径优先级 export PATH=~/PYTHON/bin:$PATH # 自定义Python模块搜索路径 export PYTHONPATH=~/PYTHON/lib/python2.7/site-packages:$PYTHONPATH
保存退出后执行source ~/.bashrc让配置立即生效,后续直接执行python、pip命令默认调用的就是你~/PYTHON路径下的版本,安装模块时无需再加--prefix参数,会默认安装到你的私有路径下。
内容的提问来源于stack exchange,提问作者JB_User
相关产品推荐
相关产品推荐

