python - 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 目录以获取后台运行脚本 - 有时不是(可能是一个未激活我的虚拟环境的突然问题?):
\users\name\Anaconda3\envs\envname\Lib
\users\name\Anaconda3\Lib
为了解决这个问题,我为这个 Windows 8.1 操作系统上的所有用户添加了缓存目录的完全访问权限。这似乎并不能解决问题——尽管它看起来确实如此?将发生率降低到“非常罕见”。
我试过了:
(重新)安装:
conda install -c anaconda wbdata
未找到 WBDATA
我还跑了一个conda uninstall wbdata
以防万一...
pip install wbdata
这安装 wbdata 没有错误,直到我运行 wbdata 来收集 api 信息
pip uninstall wbdata
;pip install wbdata
以这种方式重新安装pip
并没有消除问题。
我查看了在线文档,找不到类似的错误。
问题是:
conda
清除 Anaconda3和PIP
已安装的 wbdata 缓存之间的这种不一致的最佳最佳实践方法是什么?- 是否
popen
需要指示打开哪个虚拟环境 - 以防止此 python 缓存冲突 - 如果这是我以前从未遇到过的明显问题,那么该popen
命令会是什么样子?
解决方案
经过大量研究后发现,缓存只是可以在 Windows 中使用文件资源管理器或任何其他方法删除的文件。删除文件后,WBDATA 恢复完整功能...
推荐阅读
- javascript - 通过拖动路线中间,在 Here Maps 上绕行路线
- r - get_timelines 不返回 3,200 条最新推文
- authentication - 是否可以在不使用 PAT 的情况下创建连接到 VSTS 的服务?
- css - React Native:具有动态视图的 ZIndex
- mysql - Laravel:如何显示可用时间段列表
- sql - SQL Server 2008 r3 中的 CONCAT
- php - 过滤产品无法与 where 查询一起正常工作
- android - 可观察的
- 来自多个改造请求
- java - 用特殊字符“|”分割字符串
- r - 如何在 R 中编写学生测试的代码?