首页 > 解决方案 > Anaconda3 和 pip 卸载/安装上的世界银行 WBDATA 引发缓存目录错误

问题描述

FileExistsError: [WinError 183] Cannot create a file when that file already exists: 'C:\\Users\\name\\AppData\\Local\\wbdata\\wbdata\\Cache'

我运行 Anaconda3 并且我的 virtualenv 失去了运行 wbdata 的能力。重新安装世界银行 wbdata 0.3.0 脚本后,它在我的 Windows 开发机器上抛出上述错误

真正的问题是 Python 并不总是提醒缓存文件冲突是问题所在。这让程序员想知道为什么脚本只是停止运行。

我发现我的混合烧瓶应用程序和 python 后台脚本(我使用“popen”)混淆了 wbdata 缓存以识别缓存权限问题。

这可能popen是不是也激活了我的虚拟 python 环境——所以虚拟环境和 conda 的本机环境现在正在竞争同一个 wbdata 缓存目录?

我最初怀疑这种缓存冲突也可能是(可能=不确定)首先安装Conda然后不得不依赖“ PIP install”来获取Conda确实提供的库。我不认为 conda 支持安装 wbdata - 例如。

我在 Windows 8.1 上的安装中有两个“Lib”目录。这可能看起来很正常,但有时 python 正在寻找不同的 Lib 目录以获取后台运行脚本 - 有时不是(可能是一个未激活我的虚拟环境的突然问题?):

  1. \users\name\Anaconda3\envs\envname\Lib
  2. \users\name\Anaconda3\Lib

为了解决这个问题,我为这个 Windows 8.1 操作系统上的所有用户添加了缓存目录的完全访问权限。这似乎并不能解决问题——尽管它看起来确实如此?将发生率降低到“非常罕见”。

我试过了:

  1. (重新)安装:

    conda install -c anaconda wbdata

未找到 WBDATA

我还跑了一个conda uninstall wbdata以防万一...

  1. pip install wbdata

这安装 wbdata 没有错误,直到我运行 wbdata 来收集 api 信息

  1. pip uninstall wbdata;pip install wbdata

以这种方式重新安装pip并没有消除问题。

我查看了在线文档,找不到类似的错误。

问题是:

  1. conda清除 Anaconda3和PIP已安装的 wbdata 缓存之间的这种不一致的最佳最佳实践方法是什么?
  2. 是否popen需要指示打开哪个虚拟环境 - 以防止此 python 缓存冲突 - 如果这是我以前从未遇到过的明显问题,那么该popen命令会是什么样子?

标签: pythonpipanacondaconda

解决方案


经过大量研究后发现,缓存只是可以在 Windows 中使用文件资源管理器或任何其他方法删除的文件。删除文件后,WBDATA 恢复完整功能...


推荐阅读