【问题标题】:Pip upgrading arcgis completely broke pippip升级arcgis彻底破坏pip
【发布时间】:2021-11-24 00:43:59
【问题描述】:

概述:在运行 Python 3.6 时,升级我的 arcgis 包后,脚本不再识别许多包,并且 pip 本身完全损坏,无法升级或卸载任何包。

背景信息:最近,当我运行我的一个特定程序时,我看到一条与 arcgis 包相关的弃用消息。所以,我升级了 arcgis 包,看看它是否修复了它。它似乎安装正确,但是在尝试运行我的程序时,我会收到其他软件包的错误,例如foliumrequests。然后我尝试升级 Python,最初,它工作。我使用 pip 来安装 pandas 和 requests,但是在我安装 arcgis 之后,一切又坏了。因此,当尝试卸载 arcgis(或执行与 pip 相关的任何其他操作)时,我收到此错误:

FileExistsError: [WinError 183] 当文件已存在时无法创建文件:'C:\Users\myuserpath\AppData\Local\.certifi'

我已经卸载了 Python,但它并没有改变任何东西。 pip install any package 会导致此错误。我尝试恢复到 Python 3.6,但安装程序无法从 python 站点获得,只有 3.9。

此 arcgis 安装可能会更改或影响哪些内容?

【问题讨论】:

  • 据我记忆,pip 内部依赖于urllib3requests 的升级可能会导致其版本不一致或损坏。尝试使用this page中的get-pip.py来恢复pip
  • 如果我运行那个 get-pip.py 文件,我会得到同样的错误——文件​​已经存在。我不知道它试图复制或创建什么。
  • AFAIK ArcGis 自带 Python 安装。这通常与您拥有的任何其他安装分开,这意味着您必须多次安装第 3 方模块。在您的情况下,听起来好像 ArcGis 是在您的 vanilla Python 安装上安装自己的 Python 副本。

标签: python pip arcgis


【解决方案1】:

您似乎要处理两个主要问题。第一个是正如@BoarGules 提到的那样,arcgis 会对其所有依赖项进行“完整”安装,这可能会导致问题。其次,最新的请求库似乎也有一些问题,至少从我的经历来看是这样。所以让我们开始解决这一切吧。

可能有几种不同的方法可以解决此问题,所以这只是众多方法中的一种。首先,卸载 python 并从您的 AppData 文件夹中删除 python 文件夹 - 在您的情况下,它将是 Python 3.9 文件夹。重新安装 Python 并检查您的站点包文件夹,确保它只包含默认的 Python 包。打开命令提示符,然后 pip 安装一些基本的东西,比如 pandas。如果一切顺利,那么第一关就过去了。

当需要再次安装 arcgis 时,您会想要使用它来代替

pip install arcgis --no-deps

这将防止任何包或任何似乎正在发生的事情加倍。您还需要安装这些:

pip install ujson
pip install requests_ntlm

接下来,当您安装请求时,请使用较旧的库,例如: pip install requests==2.20.0

这应该可以让事情恢复正常运行。

【讨论】:

    猜你喜欢
    • 2014-12-05
    • 2017-07-22
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 2017-05-01
    相关资源
    最近更新 更多