dvc(数据版本控制)错误 - ImportError:无法从“fsspec.asyn”导入名称“fsspec_loop”

Ton*_*y P 10 dvc fsspec

我使用 Python 版本 3.7.13 并为 MLOps 项目创建虚拟环境 (venv)。

此 venv 中安装了与 Python== 3.7.13 兼容的 dvc 包(=2.10.2)。

(venv) (base) tony3@Tonys-MacBook-Pro mlops % dvc --version
2.10.2
Run Code Online (Sandbox Code Playgroud)

但是当运行 dvc 启动时:

(venv) (base) tony3@Tonys-MacBook-Pro mlops % dvc init
Run Code Online (Sandbox Code Playgroud)

导入时出现如下错误:

from fsspec.asyn import fsspec_loop
ImportError: cannot import name 'fsspec_loop' from 'fsspec.asyn'
Run Code Online (Sandbox Code Playgroud)

我尝试以下操作:

  1. 转到文件位置 /venv/lib/python3.7/site-packages/fsspec/asyn.py 并检查文件 asyn.py。发现没有名为“fsspec_loop”的函数。

  2. 尝试通过以下方式将 dvc 升级到更新版本:

pip install dvc --upgrade
Run Code Online (Sandbox Code Playgroud)

但 dvc 版本保持不变(2.10.2)。

  1. 卸载 dvc,
pip uninstall dvc
Run Code Online (Sandbox Code Playgroud)

并尝试安装最新版本,

pip install dvc==2.42.0
Run Code Online (Sandbox Code Playgroud)

响应显示,与Python 3.7.13兼容的dvc最新版本是2.10.2。因此,无法安装2.42.0版本。

  1. 尝试使用brew安装dvc。但 dvc 安装在 venv 之外的位置(位于 /usr/local/bin,其中使用了更高版本的 Python)。
(venv) (base) tony3@Tonys-MacBook-Pro mlops % brew install dvc
(venv) (base) tony3@Tonys-MacBook-Pro mlops % dvc --version
2.41.1
(venv) (base) tony3@Tonys-MacBook-Pro mlops % which dvc
/usr/local/bin/dvc
Run Code Online (Sandbox Code Playgroud)

整个回溯(最近一次调用最后一次)如下,

追溯

Ton*_*y P 15

感谢@ruslankuprieiev 的评论。

将 fsspec 降级到版本 2022.11.0 后,dvc 版本 2.10.2 已成功安装并使用 Python 3.7.13 在 venv 中初始化。

以下是步骤。

  1. 安装dvc版本2.10.2,
  2. 检查使用的是哪个 dvc(venv 中的那个),
  3. 检查 fsspec 版本号(== 2023.1.0),
  4. 强制重新安装以将 fsspec 降级到 2022.11.0,
  5. 再次检查 fsspec 版本号(== 2022.11.0),并且
  6. 强制初始化 dvc,因为项目目录中已有 .dvc 文件夹。

代码如下,

(venv) (base) tony3@Tonys-MacBook-Pro mlops % pip install dvc==2.10.2
(venv) (base) tony3@Tonys-MacBook-Pro mlops % which dvc
/PathtoFile/venv/bin/dvc
(venv) (base) tony3@Tonys-MacBook-Pro mlops % pip show fsspec
Name: fsspec
Version: 2023.1.0
...
(venv) (base) tony3@Tonys-MacBook-Pro mlops % pip install --force-reinstall -v "fsspec==2022.11.0"
(venv) (base) tony3@Tonys-MacBook-Pro mlops % pip show fsspec
Name: fsspec
Version: 2022.11.0
...
(venv) (base) tony3@Tonys-MacBook-Pro mlops % dvc init -f
Run Code Online (Sandbox Code Playgroud)

  • 我建议也升级到 python 3.8+,3.7 将在今年夏天 EOL,很多工具已经放弃它了。此外 dvc 2.10.2 已经很旧了,因此您错过了最新版本中的一些修复和优化。 (2认同)