python2 中使用pip2 install package_name的时候报错:AttributeError: ‘int‘ object has no attribute ‘endswith‘
1 错误说明
1、在python2
的环境下使用pip2 install
安装库包的时候报错:AttributeError: 'int' object has no attribute 'endswith'
2、具体报错信息如下
(base) shl@zhihui-mint:~/tools$ pip2 install pyquaternion
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 290, in run
with self._build_session(options) as session:
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 69, in _build_session
if options.cache_dir else None
File "/usr/lib/python2.7/posixpath.py", line 70, in join
elif path == '' or path.endswith('/'):
AttributeError: 'int' object has no attribute 'endswith'
(base) shl@zhihui-mint:~/tools$ PIP_NO_CACHE_DIR=off pip2 install pyquaternion
3、从错误原因可以看出是path
这个变量应该是字符串类型,但是我们这里是一个int
类型,但是并不能够通过直接改变来型来解决这个问题
2 错误解决方式
1、错误的解决方式,在使用pip2
安装命令之前设置:PIP_NO_CACHE_DIR=off
,例如我在python2的环境中安装pyquaternion,安装命令就修改为:
PIP_NO_CACHE_DIR=off pip2 install pyquaternion
设置为off
,其作用就是安装的时候不禁用pip缓存目录
2、当然你也可以把:PIP_NO_CACHE_DIR=off
的值设置为:0 或 no 或 off 或 false
3、在配置文件中设置,就不用每次安装都在开头都加上这句话了
如果是在python3中可以在配置文件(linux环境):
vim ~/.pip/pip.conf
添加如下内容:
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
[install]
pip_no-cache-dir = off
timeout = 6000
python2我也不知到它的pip2的配置文件应该建在什么位置,怎么建,如果你知道,欢迎留言!
参考:https://github.com/pypa/pip/issues/2897
参考:https://github.com/pypa/pip/issues/5735 # 更所关于PIP_NO_CACHE_DIR参考