visdom启动失败_[debug] 开源项目的本地使用:使用pip安装的函数库不能被anaconda和pycharm使用+visdom使用 +路径问题...

本文详细记录了在本地部署一个开源项目时遇到的Visdom启动失败、函数库版本冲突、找不到数据集路径以及内存不足等问题的解决过程。主要涉及如何正确安装和使用visdom,解决Python环境下的模块路径问题,以及处理数据集文件路径和内存管理。通过在PyCharm中新建项目,下载并转移项目文件,安装所需库,解决torch模块找不到的问题,以及处理数据集路径和内存不足问题,最终成功运行项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

将项目部署到本地的完整版尝试

项目文件下载

PyCharm中新建项目

下载的项目文件转移到PyCharm的项目文件

安装项目需要的相应版本的函数库

开启visdom

运行`main.py`文件

解决`No module named 'torch'`的报错

运行`main.py`之前要先打开visdom

解决数据集文件夹的找不到路径的报错

解决内存不够的报错

每次运行C盘空间会减少的问题

每次运行程序后C盘空间减少的原因

精简版工程部署到本地的步骤

项目文件下载

PyCharm中新建项目

下载的项目文件转移到PyCharm的项目文件

安装项目需要的相应版本的函数库

开启visdom

运行`main.py`文件

解决`No module named 'torch'`的报错

运行`main.py`之前要先在命令行打开visdom

解决数据集文件夹的找不到路径的报错

完成部署之后,运行的步骤

本人在GitHub上下载了一个开源的项目。

Hyperspectral-Classification

将项目部署到本地的完整版尝试

项目文件下载

进入网址之后会点击clone or download,再点击download ZIP,下载得到一个压缩包,然后解压得到文件夹Hyperspectral-Classification-master。

PyCharm中新建项目

打开PyCharm,在PyCharm的项目路径PycharmProjects单独新建了一个project,选择的是已有的环境。

ad31d2d44cb734485169ceac94c91ea5.png

下载的项目文件转移到PyCharm的项目文件

然后将下载解压后的文件夹Hyperspectral-Classification-master内的所有文件移动到location的路径中,我这里是C:\Users\73416\PycharmProjects\HSIproject。

5fe2530acd044a121e7b646327d63035.png

安装项目需要的相应版本的函数库

项目对于几个第三方函数库的版本有要求,存放于一个.txt文件requirements.txt中。

9694de7bdf73069832ed0429d409ce02.png

之后在PyCharm中打开main.py,PyCharm会自动提醒你不满足requirements.txt的要求的函数库有哪几个。

ee9028b5617e87527ef4fdbfe9e01782.png

由上图可知,我有几个函数库并未安装:

spectral:版本==0.19

visdom:版本>=0.1.5

torchsummary:版本>=1.5

此外PyCharm会询问你是不是通过conda来安装这些包(install requirements),这种方法和在命令行窗口输入命令是一样的。

但是在三个函数库,通过conda安装是失败的。

3aa912a62ebafcfd38c5b76e616f503e.png

报错的原因是PackagesNotFoundError: The following packages are not available from current channels:,其实就是conda没有可行的下载路径。

简单来说,就是通过conda是无法直接下载这三个函数库的。

之后我转而通过pip来下载这三个函数库,是可以下载成功的。

dce78d285bd2ec93dec47c5c2aded6b6.png

但是在应用Anaconda环境的PyCharm中,或者在Anaconda prompt中输入conda list,都找不到下载好的torchsummary函数库。

直接通过pip下载的函数库,在Anaconda中不能使用的原因是:

在你下载anaconda之前,系统就有一个pip,通过这个pip下载的函数库会储存到它相应的路径,我们称为路径1。

在下载Anaconda之后,通过conda下载的函数库会储存到conda的环境下,我们称为路径2。

下载Anaconda之前系统只存在路径1,所以通过pip下载的函数库,肯定不会存储在Anaconda的路径2。

这也就是为什么pip下载的函数库,在无法被使用conda环境的PyCharm使用。

但是,Anaconda里也有内置的pip,通过这个pip可以把函数库下载到conda的环境。也就是说,在下载了Anaconda之后,系统里就有两个pip。

下载Python之后产生的pip,下载路径是Python的环境。

下载Anaconda之后产生的pip,下载路径是conda的环境。

但是系统默认的pip是Python的pip,我们平时使用的是conda环境的IDE PyCharm,但是默认的pip下载的函数库不能被PyCharm使用。

我找到的解决方法有三种:

将默认的pip由Python的pip修改为Anaconda的pip。

把Python的pip下载的函数库,手动移动到Anaconda的pip的下载路径。

直接使用Anaconda的pip下载函数库。

本博客使用的是第三种方法:直接使用Anaconda的pip下载函数库。

首先要找到Anaconda的Scripts文件夹的路径,我的路径是E:\Anaconda\Scripts,这个取决于Anaconda的安装路径。

之后打开命令行,输入cd 文件路径,我这里是cd E:\Anaconda\Scripts。

3a761d3b741736f492ba13ac89b23b42.png

再输入文件所在的磁盘,我这里是E:,得到下面这个界面。

9a8e0e7369bb5513cd3878c04c06e67b.png

之后再输入pip的安装命令,pip install 函数库名,安装成功得到下面的界面。

56e01f9b375ca9aaf18574223dedea55.png

要检验所下载的函数库是不是位于conda的环境下。先打开Anaconda prompt。

ff9d832462e17782e494775bf6206962.png

然后输入conda list,查看conda环境下的函数库。

1422e8d516169325c36a7cc85b04f786.png

可以看到conda的环境下已经有了torchsummary这个函数库。

另外从PyCharm也可以看到。

623c3109d60894fcd7b28a85538d1129.png

做完这些之后,再看main.py就不存在缺少函数库的报错了。

147ba69255022e4cce448b07e6ff2f73.png

开启visdom

之后按照GitHub的步骤,使用visdom。

首先打开命令行窗口,然后输入python -m visdom.server。

bee005003c40673c56e91b274a06f62b.png

然后访问网址http://localhost:8097。得到这个界面。

d179d4685fc656677bc3bee7e539ff26.png

运行main.py文件

解决No module named 'torch'的报错

然后在命令行窗口输入代码运行main.py文件,python 文件路径\main.py --model nn --dataset PaviaU --training_sample 0.1 --cuda 0。我这里是python C:\Users\73416\PycharmProjects\HSIproject\main.py --model nn --dataset PaviaU --training_sample 0.1 --cuda 0。

但是出现了报错:No module named 'torch'。

9f8363de7e5e9b0acf5349b9240f54d6.png

但是我已经使用Anaconda的pip安装了呀,检验一下。打开命令行,使用Anaconda的pip安装torch。d314bee5eb92ccd5c34d213b03066e6c.png

然后告诉我:requirement already satisfied。说明这个函数库已经被安装了。

直觉告诉我这又是路径的问题,百度和优快云查阅一波确实是路径的问题。要通过代码把根目录rootpath加入到搜索路径sys.path下。

import sys,os

curPath = os.path.abspath(os.path.dirname(__file__))

rootPath = os.path.split(curPath)[0]

sys.path.append(rootPath)

然后再在命令行输入python C:\Users\73416\PycharmProjects\HSIproject\main.py --model nn --dataset PaviaU --training_sample 0.1 --cuda 0来运行main.py文件。

结果发现还是不行,一样是No module named 'torch'。

然后我明白了,上面这行代码是解决项目内其他模块无法被调用的问题,通过将整个项目文件的路径加入到搜索路径来解决。而显然torch并不应该在项目文件的路径。所以这个问题依旧存在。(其实就算torch可以被正常调用,当main.py函数调用项目文件的其他模块(自己定义的函数)的时候,也会出现No module named XXX的错误,这里只是提前解决了这个问题)。

这时我决定直接查看torch的路径,然后将这个路径加入搜索路径。

在PyCharm界面输入代码torch,会返回torch所在的位置。be50641b6d35ea937f8ee8624eeeb297.png

可以看到我这里torch的路径是E:\\Anaconda\\lib\\site-packages\\,然后在之前的增加修改路径的代码中加入sys.path.append('E:\\Anaconda\\lib\\site-packages\\')。

这部分最终的代码如下:

import sys,os

curPath = os.path.abspath(os.path.dirname(__file__))

rootPath = os.path.split(curPath)[0]

sys.path.append(rootPath)

sys.path.append('E:\\Anaconda\\lib\\site-packages\\')

需要注意的是,这段代码添加的位置是main.py的开头(import XXX的前面),但是由于import _future_需要放在最开头的位置,所以这段代码插入的位置是import _future_之后,import XXX之前。

68c714321cef73636a74fca6f643a5eb.png

至此,再在命令行用python C:\Users\73416\PycharmProjects\HSIproject\main.py --model nn --dataset PaviaU --training_sample 0.1 --cuda 0运行main.py,不再出现No module named 'torch'的错误。

运行main.py之前要先打开visdom

但是出现了另一个报错信息ConnectionRefusedError。

d9dba93c4ccc153bdc11fe0416f5b8d3.png

可以看到错误类型是ConnectionRefusedError,目标计算机积极拒绝,无法连接。我猜测是visdom的原因,因为我们需要http://localhost:8097去响应我们的操作。

然后发现自己在运行main.py的时候,并没有使用python -m visdom.server。

于是我关掉了所有命令行,先打开一个命令行输入python -m visdom.server。859d121b3908fd369159f7db7f892d30.png

然后再打开一个命令行,输入python C:\Users\73416\PycharmProjects\HSIproject\main.py --model nn --dataset PaviaU --training_sample 0.1 --cuda 0运行main.py,不再出现ConnectionRefusedError的错误。输入python -m visdom.server的命令行也发生变化。

4c40964b6776d81ddc87bdadd06d6632.png

解决数据集文件夹的找不到路径的报错

但是又出现了另一个错误:FileNotFoundError6c7759432072a063c729a6975debb1d7.png

查看响应的代码,发现是在创建数据集文件夹的时候,找不到路径。FileNotFoundError,系统找不到指定的路径。:'./Datasets/Paviau/'

我的第一个想法是,既然系统找不到'./Datasets/Paviau/'的路径,那我就参照GitHub的文件夹示例创建这个路径。于是我创建了如下的文件夹。

fc29d474abc443559f52be77dd748507.png

然后再次在命令行运行main.py,结果依旧找不到路径。c485e085501d2816908704c35e78c5dc.png

这时我意识到是路径的问题(没错又是路径的问题!)。

这时我首先怀疑的是,是不是我的文件夹创建的方式不对,导致系统找不到相应的路径。

为了验证这个问题,我在C盘手动查找./Datasets/Paviau/这个路径,发现是可以找到的(当时只有Paviau这个文件夹,其他两个.mat文件是程序运行的时候下载的数据集,当时并没有它俩)。

fc208e9d11eb623f20a51049eb6964af.png

接下来,我就怀疑是程序指定的搜索路径的问题。

a1f3a2240d248ac21ff4575a9b2cd4a6.png

默认的搜索路径是./,也就是不论前缀。

这时候我突然想起来,当我手动查找./Datasets/Paviau/这个路径时,直接在C盘查找会耗费特别特别长的时间,直到我最后手动停止也没有找到。后来我指定了在项目文件夹下面找,才在短时间内找到了(用了几秒)。

而程序从运行到报错的时间,小于系统在C盘查找的时间需要的时间。换句话说,系统是直接在整个系统盘找这个路径,找了一段时间没找到,返回了FileNotFoundError的错误,但是如果时间足够长的话是可以找得到的(我认为这其实是程序的保护机制)。

所以我在程序中强制修改了查找路径,从默认的./改到我创建Datasets文件夹的项目路径C:\\Users\\73416\\PycharmProjects\\HSIproject\\Datasets\\(修改target_folder)。

773bb4ba0a37b1cb42edd7cefdf00c73.png

然后把Datasets下的子文件夹全部删除(下载数据集的时候会自行创建),然后再命令行输入python C:\Users\73416\PycharmProjects\HSIproject\main.py --model nn --dataset PaviaU --training_sample 0.1 --cuda 0来运行main.py。

成功!

8148dde70aa8b062a697c284ba23bd59.png

解决内存不够的报错

第二天我再运行的时候,跑到一半又出现了一个报错:

97fd693dbe16485b718e4d289258ba02.png

我当时真的是百思不得其解,完全不知道这是什么意思,网上也查不到。

直到我点开了computer,发现我的C盘一点空间的不剩了(剩余0字节)。

这时候我怀疑是不是我C盘空间不够的问题。

于是我清理了C盘,腾出足够的空间:

b9f2294077fa710865eeb5e7748e02d4.png

然后再次运行main.py。然后这次成功了。

15a6e02dd37fa2fba9b9cee1f6b77185.png

每次运行C盘空间会减少的问题

之后回去再看C盘的空间,发现少了1个G左右:

cf940b61a8dc69726637fd8f68e64885.png

然后我开始找C盘新增的比较大的文件。

我原以为是数据集重新下载了,结果发现项目文件的大小远远小于1G,所以并不是这里问题。

之后找呀找(找呀找呀找朋友),结果发现了hiberfil.sys有3.14G,最后额修改时间恰好是我运行main.py的时间(我天真的以为成了),看后缀是个系统文件。

百度之后发现hiberfil.sys是系统休眠的缓存文件,如果要删除的话,以管理员身份运行cmd,输入powercfg -h off来关闭这个功能。

8f9215adbaa3f22d79ab1b5a7de970b7.pngbffaa6b2fec973269d9b465dc09b11fd.png

发现C盘空间回复了:

a77c58ec11def846e3ec89bf48917ba4.png

然后我满怀信心地再次运行main.py,结果发现C盘又少了1个G!没错又少了1个G!!!!这时候再看C盘,已经没有powercfg -h off。

之后我又开始了无比漫长的寻找,想弄清这1G跑到什么地方去了。

每次运行程序后C盘空间减少的原因

减少的内存是保存的网络参数。

由于命名规则的原因,在参数文件的名称中会带有accuracy。导致每次运行得到的参数文件不会被替换。所以每次运行C盘空间都会减少。

我的参数保存的路径是:

C:\Users\73416\checkpoints

参数文件名称如下:

6aab4a61b388875afebd38b466af9285.png

想要释放空间,删掉不用的参数文件就好了。

精简版工程部署到本地的步骤

项目文件下载

进入网址之后会点击clone or download,再点击download ZIP,下载得到一个压缩包,然后解压得到文件夹Hyperspectral-Classification-master。

PyCharm中新建项目

打开PyCharm,在PyCharm的项目路径PycharmProjects单独新建了一个project,选择的是已有的环境。

ad31d2d44cb734485169ceac94c91ea5.png

下载的项目文件转移到PyCharm的项目文件

然后将下载解压后的文件夹Hyperspectral-Classification-master内的所有文件移动到location的路径中,我这里是C:\Users\73416\PycharmProjects\HSIproject。

5fe2530acd044a121e7b646327d63035.png

安装项目需要的相应版本的函数库

项目对于几个第三方函数库的版本有要求,存放于一个.txt文件requirements.txt中。

9694de7bdf73069832ed0429d409ce02.png

之后在PyCharm中打开main.py,PyCharm会自动提醒你不满足requirements.txt的要求的函数库有哪几个。

下面使用Anaconda内置的pip来下载满足条件的函数库:

首先要找到Anaconda的Scripts文件夹的路径,我的路径是E:\Anaconda\Scripts,这个取决于Anaconda的安装路径。

之后打开命令行,输入cd 文件路径,我这里是cd E:\Anaconda\Scripts。

3a761d3b741736f492ba13ac89b23b42.png

再输入文件所在的磁盘,我这里是E:,得到下面这个界面。

9a8e0e7369bb5513cd3878c04c06e67b.png

之后再输入pip的安装命令,pip install 函数库名,安装成功得到下面的界面。

56e01f9b375ca9aaf18574223dedea55.png

要检验所下载的函数库是不是位于conda的环境下。先打开Anaconda prompt。

ff9d832462e17782e494775bf6206962.png

然后输入conda list,查看conda环境下的函数库。

1422e8d516169325c36a7cc85b04f786.png

可以看到conda的环境下已经有了torchsummary这个函数库。

另外从PyCharm也可以看到。

623c3109d60894fcd7b28a85538d1129.png

做完这些之后,再看main.py就不存在缺少函数库的报错了。

147ba69255022e4cce448b07e6ff2f73.png

开启visdom

之后按照GitHub的步骤,使用visdom。

首先打开命令行窗口,然后输入python -m visdom.server。

bee005003c40673c56e91b274a06f62b.png

然后访问网址http://localhost:8097。得到这个界面。

d179d4685fc656677bc3bee7e539ff26.png

运行main.py文件

解决No module named 'torch'的报错

首先查看torch的路径。

在PyCharm界面输入代码torch,会返回torch所在的位置。be50641b6d35ea937f8ee8624eeeb297.png

可以看到我这里torch的路径是E:\\Anaconda\\lib\\site-packages\\,然后main.py的import _future_之后,import XXX之前插入如下的代码:

import sys,os

curPath = os.path.abspath(os.path.dirname(__file__))

rootPath = os.path.split(curPath)[0]

sys.path.append(rootPath)

sys.path.append('E:\\Anaconda\\lib\\site-packages\\')

(最后一行sys.path.append('E:\\Anaconda\\lib\\site-packages\\')的路径是torch的路径,因人而异!!):

代码的插入位置如下:

68c714321cef73636a74fca6f643a5eb.png

运行main.py之前要先在命令行打开visdom

如题。

解决数据集文件夹的找不到路径的报错

在项目文件夹下(我这里是C:\\Users\\73416\\PycharmProjects\\HSIproject\\)创建一个空的文件夹,命名为Datasets。

然后再PyCharm中打开datasets.py,修改其中的代码。

再下图所示的位置,加入我选中的那一行的代码target_folder = "C:\\Users\\73416\\PycharmProjects\\HSIproject\\Datasets\\",用来修改默认的搜索路径。

(注意:路径是文件夹Datasets的子文件夹的路径,因人而异!! 即使现在文件夹Datasets并没有子文件)。

773bb4ba0a37b1cb42edd7cefdf00c73.png

完成部署之后,运行的步骤

首先打开命令行窗口,然后输入python -m visdom.server。

bee005003c40673c56e91b274a06f62b.png

然后访问网址http://localhost:8097。得到这个界面。

d179d4685fc656677bc3bee7e539ff26.png

然后确保C盘有足够的空间!!!

然后打开命令行,输入python C:\Users\73416\PycharmProjects\HSIproject\main.py --model nn --dataset PaviaU --training_sample 0.1 --cuda 0,运行main.py,并指明相应的参数。

然后等待结果就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值