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参考

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
这个报错意味着在你的代码,你尝试使用 `PolynomialFeatures` 的 `get_feature_names()` 方法,但该对象似乎并没有这个方法。 为了解决这个问题,有以下几个可能的解决方案: 1. 确保你的 `sklearn` 库版本是最新的。`get_feature_names()` 方法在一些旧版本的 `sklearn` 可能不存在。你可以通过 `pip install -U scikit-learn` 命令来升级 `sklearn` 库。 2. 如果你的 `sklearn` 库已经是最新版本,那么可能是你的代码有误。请检查你的代码是否正确地实例化了 `PolynomialFeatures` 类,并且是否正确地使用了 `fit_transform()` 方法。另外,也请确保你的输入数据格式正确,因为 `get_feature_names()` 方法需要的是 `PolynomialFeatures` 所处理的特征名称列表,而不是原始数据。 3. 如果以上两个解决方案都不行,那么你可以尝试自己实现一个函数来生成特征名称列表。这个函数可以使用 `PolynomialFeatures` 所生成的特征矩阵的形状和 `get_feature_names()` 方法的实现方式作为参考。下面是一个示例函数: ``` def generate_feature_names(poly, input_features): poly_n = poly.n_output_features_ input_n = len(input_features) feature_names = [] for i in range(poly_n): if i < input_n: feature_names.append(input_features[i]) else: name = '' powers = poly.powers_[i] for j in range(len(powers)): if powers[j] > 0: if name: name += '*' name += input_features[j] if powers[j] > 1: name += '^' + str(powers[j]) feature_names.append(name) return feature_names ``` 这个函数需要传入一个已经实例化的 `PolynomialFeatures` 对象和一个输入特征名称列表。它会返回一个特征名称列表,其每个元素对应 `PolynomialFeatures` 所生成的一个特征。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点亮~黑夜

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值