fastprogress 中的版本冲突

VersionConflict in fastprogress

拜托,我正在使用 Google Colab 和 Python3

我在 fastprogress 中遇到 VersionConflict 问题。我有这个代码:

!curl -s https://course.fast.ai/setup/colab | bash
import warnings
warnings.filterwarnings('ignore')
from fastai.vision import *
from fastai.metrics import error_rate
import fastai
print(f'fastai: {fastai.__version__}')
print(f'cuda: {torch.cuda.is_available()}')


---------------------------------------------------------------------------
VersionConflict                           Traceback (most recent call last)
<ipython-input-17-01736c3668f8> in <module>()
      1 import warnings
      2 warnings.filterwarnings('ignore')
----> 3 from fastai.vision import *
      4 from fastai.metrics import error_rate
      5 import fastai

7 frames
/usr/local/lib/python3.6/dist-packages/pkg_resources/__init__.py in resolve(self, requirements, env, installer, replace_conflicting, extras)
    789                 # Oops, the "best" so far conflicts with a dependency
    790                 dependent_req = required_by[req]
--> 791                 raise VersionConflict(dist, req).with_context(dependent_req)
    792 
    793             # push the new requirements onto the stack

VersionConflict: (fastprogress 0.1.22 (/usr/local/lib/python3.6/dist-packages), Requirement.parse('fastprogress>=0.2.1'))

我也尝试过使用 (!pip install --upgrade fastprogress) 进行更新,但消息已经更新

Requirement already up-to-date: fastprogress in /usr/local/lib/python3.6/dist-packages (0.2.1)

有谁知道原因吗?

我刚才也遇到了同样的问题。就我而言,奇怪的是,我可以在 重新启动内核 后成功导入。

对我来说,解决方案是 运行 cel: from fastai.vision import * 首先 运行 其他单元格,例如 :

from google.colab import drive drive.mount('/content/gdrive', force_remount=True) root_dir = "/content/gdrive/My Drive/" base_dir = root_dir + 'fastai-v3/'

我检查了fastai和fastprogress的版本。 截至今天 (12/31/2019) Colab 有

  • fastai: 1.0.59
  • 快速进度:0.1.22

命令!curl -s https://course.fast.ai/setup/colab | bash 会将它们更新为

  • 法泰:1.0.60
  • 快速进度:0.2.1

当您执行 from fastai.vision import * 时,不知何故 fastai.vision 仍指向旧版本,而 fastprogress 指向新版本。

我从@Martian 和@John 的两个解决方案中发现的是。

  1. @Martian 的解决方案,即只需 重新启动运行时... 当您遇到问题并重新运行导入行时,将导入新版本。
  2. @John 的那个,即 运行 首先导入行,将导致旧版本。