pip install deepforest 失败

在安装deepforest时出现了各种这样的报错,就像下面所示: 

  ERROR: Command errored out with exit status 1:
     command: 'D:\Anaconda\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\admi\\AppData\\Local\\Temp\\pip-install-2nmx5zya\\fiona_7f7296c5d8054f229107ad108afd842a\\setup.py'"'"'; __file__='"'"'C:\\Users\\admi\\AppData\\Local\\Temp\\pip-install-2nmx5zya\\fiona_7f7296c5d8054f229107ad108afd842a\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\admi\AppData\Local\Temp\pip-record-z16ma57a\install-record.txt' --single-version-externally-managed --compile --install-headers 'D:\Anaconda\Include\fiona'
         cwd: C:\Users\admi\AppData\Local\Temp\pip-install-2nmx5zya\fiona_7f7296c5d8054f229107ad108afd842a\
    Complete output (12 lines):
    D:\Anaconda\lib\distutils\dist.py:274: UserWarning: Unknown distribution option: 'metadata_version'
      warnings.warn(msg)
    D:\Anaconda\lib\distutils\dist.py:274: UserWarning: Unknown distribution option: 'requires_python'
      warnings.warn(msg)
    D:\Anaconda\lib\distutils\dist.py:274: UserWarning: Unknown distribution option: 'requires_external'
      warnings.warn(msg)
    running install
    running build
    running build_py
    running build_ext
    building 'fiona._transform' extension

pip install deepforest 失败_第1张图片

查找了很多资料,开始以为是依赖包版本不匹配,包括一些博客提到的DGAL和rasterio的版本。在相应的官网下载了各种各样的离线下载包去匹配。 DGAL很容易安装成功,但是rasterio始终安装不成功。后来用pip install deep-forest 试了试,虽然这个包很容易安装成功,但是在import deepforest相应的函数和库的时候还是会报错"No module named 'deepforesst' "。最后我在DeepForest官网的文档里面知道到了原因。发现deepforest也是一个环境,类似于pytorch,而不是一个依赖包。Installation — DeepForest documentation它的官网文档里也解释道Deepforest is a pytorch lightning module, as automatically distributes data to available GPUs.

所以要像搭建pytorch环境一样重新创建deepforest的环境。流程如链接所示。先用win+R打开终端然后如若安装cpu版本deepforest,就执行

conda create -n deepforest python=3 pytorch torchvision -c pytorch
conda activate deepforest
conda install deepforest -c conda-forge

如果安装GPU版本就执行

conda create -n deepforest python=3 pytorch torchvision cudatoolkit=10.2 -c pytorch
conda activate deepforest
conda install deepforest -c conda-forge

然后就安装完成,如图所示:

pip install deepforest 失败_第2张图片

用conda info -e查看环境并激活deepforest的环境,在编辑器里导入deepforest的路径,然而在运行代码的时候还是会报错"No module named 'deepforesst' ",这时报错的内容大概与rasterio、GDAL、Fiona这些依赖包有关。

pip install deepforest 失败_第3张图片

在终端用conda指令安装rasterio。

conda install rasterio

GDAL、Fiona包的安装需要安装正确的版本,我试了好多次才找到了适合自己的环境的版本。具体方法时在python离线下载包网址Archived: Python Extension Packages for Windows - Christoph Gohlke (uci.edu)

找到GDAL-3.4.3-cp39-cp39-win_amd64与Fiona-1.8.21-cp39-cp39-win_amd64并下载然后在终端依次用pip安装。这两个包的版本需要根据python的版本确定。可以用下面指令查看python版本,我的python版本是3.9,所以选择cp39版本。

python --version

安装成功之后再安装deepforest.

pip install deepforest

然后运行代码from deepforest import CascadeForestRegressor还是会报错ImportError: cannot import name 'CascadeForestRegressor' from 'deepforest'。开始以为是deepforest版本更新,api接口变动,使用的函数不再是CascadeForestRegressor。查找了很多资料发现网上有同样的提问,并没有得到解决。就去deepforest作者的GitHub看了看,看到了

pip install deep-forest

并在终端运行,安装成功后运行代码试了一下,运行成功,CascadeForestRegressor成功导入。一波三折,终于把deepforest的环境配置好了。

后来这个流程在自己的台式电脑又试了一下。发现在最后一步pip安装deep-forest的时候出现了报错:

ERROR: Could not find a version that satisfies the requirement deep-forest (from versions: none) ERR

有去查阅了一些资料,对这个错误最多的解释是pip版本未更新以及网速和镜像问题。pip安装包报错Could not find a version that satisfies the requirement pymysql (from versions: none) - 知乎 (zhihu.com)这些方法没有解决这个问题。然后查看了一些这个环境python的版本,发现这个版本是3.10的,记得之前我的笔记本安装的是3.9的,然后抱着侥幸的心态去降python版本。我先退出并删除了这个deepforest的环境(没有尝试在环境内直接降)。

deactivate
conda remove -n deepforest --all

然后重新创建环境,步骤和前面一样,只不过在创建的时候指定一下python的版本就可以。 

conda create -n deepforest python=3.9 pytorch torchvision cudatoolkit=10.2 -c pytorch

其他步骤依次执行。最后终于安装成功。经验教训,安装环境和部分软件,能避免高版本就尽量避免高版本。

你可能感兴趣的:(pip,python,windows)