Anaconda Navigator无法打开以及在终端运行出现cannot import name ‘iter_fields‘ from ‘urllib3.filepost‘ 的问题解决办法

文章描述了在安装selenium4.0.1时遇到与requests版本不兼容的问题,通过升级urllib3和requests导致AnacondaNavigator无法启动。问题在于pip安装的包与Anaconda内部的包版本冲突。解决方案是卸载通过pip安装的不兼容包,恢复AnacondaNavigator的正常启动。该方法适用于处理类似包冲突问题。
摘要由CSDN通过智能技术生成

公司电脑安装的Anaconda Navigator1.9.12, python 3.8.3. 由于Anaconda Navigator 没有selenium的包,所以通过pip 安装了selenium 4.0.1. 安装过程中报与requests的版本不兼容,所以又通过pip 升级了urllib3, requests到最新版本。完成后再也无法打开Anaconda Navigator. 通过prompt运行Anaconda Navigator 报错。

(base) C:\Users\jch507>anaconda navigator
C:\Program Files\Anaconda3-2020.07-Windows-x86_64\lib\site-packages\requests\__init__.py:89: RequestsDependencyWarning: urllib3 (2.0.3) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
Traceback (most recent call last):
  File "C:\Program Files\Anaconda3-2020.07-Windows-x86_64\Scripts\anaconda-script.py", line 6, in <module>
    from binstar_client.scripts.cli import main
  File "C:\Program Files\Anaconda3-2020.07-Windows-x86_64\lib\site-packages\binstar_client\__init__.py", line 15, in <module>
    from .requests_ext import stream_multipart, NullAuth
  File "C:\Program Files\Anaconda3-2020.07-Windows-x86_64\lib\site-packages\binstar_client\requests_ext.py", line 11, in <module>
    from requests.packages.urllib3.filepost import choose_boundary, iter_fields
ImportError: cannot import name 'iter_fields' from 'urllib3.filepost' (C:\Users\jch507\AppData\Roaming\Python\Python38\site-packages\urllib3\filepost.py)

一开始盯着最后import error的问题查询没啥结果,之后才注意到urllib3 (2.0.3) or chardet (3.0.4) doesn't match a supported version!这个错误信息。研究后发现 通过pip升级的包安装在了python的sitepackages下面而非anaconda的。Anaconda Navigator启动的时候引用了python下最新版本的urllib3,由于版本不兼容造成的启动失败。在Anaconda的sitepackages 目录下面发现它自带的urllib3的文件都还存在。那么解决思路就清晰了,卸载通过pip 升级的requests, urllib3的包。让Anaconda Navigator启动时引用会他自己sitepackages下的包就可以了。

解决办法:运行如下命令

pip --uninstall requests

pip --uninstall urllib3

完成后Anaconda Navigator顺利启动。

此方案可以融会贯通,因为每个人遇到的不兼容的包可能不同。总结就是通过PIP安装的包可能与anaconda navigator需要的不兼容。而且pip安装的包放在了python的目录下引用的时候优先级更高。造成anacond navigator启动失败。只要卸载了不兼容的包即可解决问题。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 这个错误通常是由于您使用的urllib3版本较低造成的。您可以尝试更新urllib3包以解决这个问题。您可以使用以下命令在命令行中更新urllib3: ``` pip install --upgrade urllib3 ``` 如果您使用的是anaconda,则可以使用以下命令更新urllib3: ``` conda upgrade urllib3 ``` 如果您的环境中有多个Python版本,则可能需要使用pip3或conda3代替pip和conda。 ### 回答2: 这个错误是由于在导入`urllib3.filepost`模块无法找到`iter_fields`函数导致的。`iter_fields`函数被用来迭代multipart/form-data编码的请求数据。 要解决这个问题,可以采取以下几步: 1. 确保你的Python版本与`urllib3`库兼容。你可以通过`python --version`命令查看你当前使用的Python版本。 2. 检查你的`urllib3`库版本。你可以使用`pip show urllib3`命令查看当前安装的`urllib3`库的版本号。如果版本号较低,可以使用`pip install --upgrade urllib3`命令来升级库版本。 3. 检查你的Python环境是否正确配置。有候由于环境配置问题,会导致模块无法正确导入。你可以尝试重启你的Python解释器或重新配置环境变量。 4. 如果以上步骤都没有解决问题,可能是`urllib3`库本身的问题。你可以尝试卸载该库并重新安装。可以使用`pip uninstall urllib3`命令卸载,然后使用`pip install urllib3`命令重新安装。 希望以上解决方案能够帮助你解决导入错误的问题。如果问题仍然存在,可能需要进一步研究更深入的原因。 ### 回答3: 根据给出的错误信息,ImportError: cannot import name 'iter_fields' from 'urllib3.filepost' (D:\Program Files\Lib\site-packages\urllib3\filepost.py)。这个错误是由于在 'urllib3.filepost' 模块中无法导入 'iter_fields' 函数引起的。 该错误可能由以下几种原因造成: 1. urllib3 版本问题:这个错误可能是因为 urllib3 的版本过低导致的。解决方法是通过升级 urllib3 到最新版本,可以使用 pip 工具执行以下命令进行升级: ``` pip install --upgrade urllib3 ``` 2. 文件路径问题:错误信息中给出了 'urllib3.filepost' 模块的路径,可能是由于该路径有问题而导致无法找到 'iter_fields' 函数。可以检查该文件路径是否存在,或者重新安装 urllib3 模块以确保该文件存在。 3. 非标准库问题: 'iter_fields' 函数可能不是标准库 urllib3 的一部分。如果你安装了额外的第三方库,可能会覆盖或修改 urllib3 模块,导致无法找到 'iter_fields' 函数。解决方法是检查是否存在其他与 urllib3 相冲突的库,并进行相应的调整。 希望这些解决方法能够帮助你解决 ImportError: cannot import name 'iter_fields' from 'urllib3.filepost' (D:\Program Files\Lib\site-packages\urllib3\filepost.py) 的问题。如果仍然有其他问题,请提供更多细节以获得进一步的帮助。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值