visdom启动失败_[debug] 开源项目的本地使用:使用pip安装的函数库不能被anaconda和pycharm使用+visdom使用 +路径问题...
文章目录
将项目部署到本地的完整版尝试
项目文件下载
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,选择的是已有的环境。
下载的项目文件转移到PyCharm的项目文件
然后将下载解压后的文件夹Hyperspectral-Classification-master内的所有文件移动到location的路径中,我这里是C:\Users\73416\PycharmProjects\HSIproject。
安装项目需要的相应版本的函数库
项目对于几个第三方函数库的版本有要求,存放于一个.txt文件requirements.txt中。
之后在PyCharm中打开main.py,PyCharm会自动提醒你不满足requirements.txt的要求的函数库有哪几个。
由上图可知,我有几个函数库并未安装:
spectral:版本==0.19
visdom:版本>=0.1.5
torchsummary:版本>=1.5
此外PyCharm会询问你是不是通过conda来安装这些包(install requirements),这种方法和在命令行窗口输入命令是一样的。
但是在三个函数库,通过conda安装是失败的。
报错的原因是PackagesNotFoundError: The following packages are not available from current channels:,其实就是conda没有可行的下载路径。
简单来说,就是通过conda是无法直接下载这三个函数库的。
之后我转而通过pip来下载这三个函数库,是可以下载成功的。
但是在应用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。
再输入文件所在的磁盘,我这里是E:,得到下面这个界面。
之后再输入pip的安装命令,pip install 函数库名,安装成功得到下面的界面。
要检验所下载的函数库是不是位于conda的环境下。先打开Anaconda prompt。
然后输入conda list,查看conda环境下的函数库。
可以看到conda的环境下已经有了torchsummary这个函数库。
另外从PyCharm也可以看到。
做完这些之后,再看main.py就不存在缺少函数库的报错了。
开启visdom
之后按照GitHub的步骤,使用visdom。
首先打开命令行窗口,然后输入python -m visdom.server。
然后访问网址http://localhost:8097。得到这个界面。
运行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'。
但是我已经使用Anaconda的pip安装了呀,检验一下。打开命令行,使用Anaconda的pip安装torch。
然后告诉我:requirement already satisfied。说明这个函数库已经被安装了。
直觉告诉我这又是路径的问题,百度和CSDN查阅一波确实是路径的问题。要通过代码把根目录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所在的位置。
可以看到我这里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之前。
至此,再在命令行用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。
可以看到错误类型是ConnectionRefusedError,目标计算机积极拒绝,无法连接。我猜测是visdom的原因,因为我们需要http://localhost:8097去响应我们的操作。
然后发现自己在运行main.py的时候,并没有使用python -m visdom.server。
于是我关掉了所有命令行,先打开一个命令行输入python -m visdom.server。
然后再打开一个命令行,输入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的命令行也发生变化。
解决数据集文件夹的找不到路径的报错
但是又出现了另一个错误:FileNotFoundError
查看响应的代码,发现是在创建数据集文件夹的时候,找不到路径。FileNotFoundError,系统找不到指定的路径。:'./Datasets/Paviau/'
我的第一个想法是,既然系统找不到'./Datasets/Paviau/'的路径,那我就参照GitHub的文件夹示例创建这个路径。于是我创建了如下的文件夹。
然后再次在命令行运行main.py,结果依旧找不到路径。
这时我意识到是路径的问题(没错又是路径的问题!)。
这时我首先怀疑的是,是不是我的文件夹创建的方式不对,导致系统找不到相应的路径。
为了验证这个问题,我在C盘手动查找./Datasets/Paviau/这个路径,发现是可以找到的(当时只有Paviau这个文件夹,其他两个.mat文件是程序运行的时候下载的数据集,当时并没有它俩)。
接下来,我就怀疑是程序指定的搜索路径的问题。
默认的搜索路径是./,也就是不论前缀。
这时候我突然想起来,当我手动查找./Datasets/Paviau/这个路径时,直接在C盘查找会耗费特别特别长的时间,直到我最后手动停止也没有找到。后来我指定了在项目文件夹下面找,才在短时间内找到了(用了几秒)。
而程序从运行到报错的时间,小于系统在C盘查找的时间需要的时间。换句话说,系统是直接在整个系统盘找这个路径,找了一段时间没找到,返回了FileNotFoundError的错误,但是如果时间足够长的话是可以找得到的(我认为这其实是程序的保护机制)。
所以我在程序中强制修改了查找路径,从默认的./改到我创建Datasets文件夹的项目路径C:\\Users\\73416\\PycharmProjects\\HSIproject\\Datasets\\(修改target_folder)。
然后把Datasets下的子文件夹全部删除(下载数据集的时候会自行创建),然后再命令行输入python C:\Users\73416\PycharmProjects\HSIproject\main.py --model nn --dataset PaviaU --training_sample 0.1 --cuda 0来运行main.py。
成功!
解决内存不够的报错
第二天我再运行的时候,跑到一半又出现了一个报错:
我当时真的是百思不得其解,完全不知道这是什么意思,网上也查不到。
直到我点开了computer,发现我的C盘一点空间的不剩了(剩余0字节)。
这时候我怀疑是不是我C盘空间不够的问题。
于是我清理了C盘,腾出足够的空间:
然后再次运行main.py。然后这次成功了。
每次运行C盘空间会减少的问题
之后回去再看C盘的空间,发现少了1个G左右:
然后我开始找C盘新增的比较大的文件。
我原以为是数据集重新下载了,结果发现项目文件的大小远远小于1G,所以并不是这里问题。
之后找呀找(找呀找呀找朋友),结果发现了hiberfil.sys有3.14G,最后额修改时间恰好是我运行main.py的时间(我天真的以为成了),看后缀是个系统文件。
百度之后发现hiberfil.sys是系统休眠的缓存文件,如果要删除的话,以管理员身份运行cmd,输入powercfg -h off来关闭这个功能。
发现C盘空间回复了:
然后我满怀信心地再次运行main.py,结果发现C盘又少了1个G!没错又少了1个G!!!!这时候再看C盘,已经没有powercfg -h off。
之后我又开始了无比漫长的寻找,想弄清这1G跑到什么地方去了。
每次运行程序后C盘空间减少的原因
减少的内存是保存的网络参数。
由于命名规则的原因,在参数文件的名称中会带有accuracy。导致每次运行得到的参数文件不会被替换。所以每次运行C盘空间都会减少。
我的参数保存的路径是:
C:\Users\73416\checkpoints
参数文件名称如下:
想要释放空间,删掉不用的参数文件就好了。
精简版工程部署到本地的步骤
项目文件下载
进入网址之后会点击clone or download,再点击download ZIP,下载得到一个压缩包,然后解压得到文件夹Hyperspectral-Classification-master。
PyCharm中新建项目
打开PyCharm,在PyCharm的项目路径PycharmProjects单独新建了一个project,选择的是已有的环境。
下载的项目文件转移到PyCharm的项目文件
然后将下载解压后的文件夹Hyperspectral-Classification-master内的所有文件移动到location的路径中,我这里是C:\Users\73416\PycharmProjects\HSIproject。
安装项目需要的相应版本的函数库
项目对于几个第三方函数库的版本有要求,存放于一个.txt文件requirements.txt中。
之后在PyCharm中打开main.py,PyCharm会自动提醒你不满足requirements.txt的要求的函数库有哪几个。
下面使用Anaconda内置的pip来下载满足条件的函数库:
首先要找到Anaconda的Scripts文件夹的路径,我的路径是E:\Anaconda\Scripts,这个取决于Anaconda的安装路径。
之后打开命令行,输入cd 文件路径,我这里是cd E:\Anaconda\Scripts。
再输入文件所在的磁盘,我这里是E:,得到下面这个界面。
之后再输入pip的安装命令,pip install 函数库名,安装成功得到下面的界面。
要检验所下载的函数库是不是位于conda的环境下。先打开Anaconda prompt。
然后输入conda list,查看conda环境下的函数库。
可以看到conda的环境下已经有了torchsummary这个函数库。
另外从PyCharm也可以看到。
做完这些之后,再看main.py就不存在缺少函数库的报错了。
开启visdom
之后按照GitHub的步骤,使用visdom。
首先打开命令行窗口,然后输入python -m visdom.server。
然后访问网址http://localhost:8097。得到这个界面。
运行main.py文件
解决No module named 'torch'的报错
首先查看torch的路径。
在PyCharm界面输入代码torch,会返回torch所在的位置。
可以看到我这里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的路径,因人而异!!):
代码的插入位置如下:
运行main.py之前要先在命令行打开visdom
如题。
解决数据集文件夹的找不到路径的报错
在项目文件夹下(我这里是C:\\Users\\73416\\PycharmProjects\\HSIproject\\)创建一个空的文件夹,命名为Datasets。
然后再PyCharm中打开datasets.py,修改其中的代码。
再下图所示的位置,加入我选中的那一行的代码target_folder = "C:\\Users\\73416\\PycharmProjects\\HSIproject\\Datasets\\",用来修改默认的搜索路径。
(注意:路径是文件夹Datasets的子文件夹的路径,因人而异!! 即使现在文件夹Datasets并没有子文件)。
完成部署之后,运行的步骤
首先打开命令行窗口,然后输入python -m visdom.server。
然后访问网址http://localhost:8097。得到这个界面。
然后确保C盘有足够的空间!!!
然后打开命令行,输入python C:\Users\73416\PycharmProjects\HSIproject\main.py --model nn --dataset PaviaU --training_sample 0.1 --cuda 0,运行main.py,并指明相应的参数。
然后等待结果就可以了。
visdom启动失败_[debug] 开源项目的本地使用:使用pip安装的函数库不能被anaconda和pycharm使用+visdom使用 +路径问题...相关推荐
- [debug] 开源项目的本地使用:使用pip安装的函数库不能被anaconda和pycharm使用+visdom使用 +路径问题
文章目录 将项目部署到本地的完整版尝试 项目文件下载 PyCharm中新建项目 下载的项目文件转移到PyCharm的项目文件 安装项目需要的相应版本的函数库 开启visdom 运行`main.py`文 ...
- 服务启动失败_将控制台程序转换为服务运行
移花接木 在上一篇文章<限制程序只能同时启动一个实例-唯一>中,我们详细讨论了在Windows中,将软件设置为开机启动的方法.从而实现保护程序开机的时候自动保护服务的运行. 有的时候,我们 ...
- java 博客系统_讲解开源项目:5分钟搭建私人Java博客系统
本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和运行 Tale 项目.示例均在 Windows 操作系统下演示 本文作者:HelloGitHub-秦人 HelloGitHub 推出的< ...
- 她偏爱雏菊一样的淡黄色_为什么开源项目(非常)偏爱新用户,以及您可以采取什么措施...
她偏爱雏菊一样的淡黄色 by Filip Hracek 由Filip Hracek 为什么开源项目(非常)偏爱新用户,以及您可以采取什么措施 (Why open source projects (sa ...
- android上传项目到码云_直播开源项目
AVRtmpPushSDK 欢迎关注 AVRtmpPushSDK 直播开源项目,这是一个由 kotlin .C++ 编写的项目.整个项目完成了采集. 视音频处理.编码.数据发送前处理.数据发送的功能. ...
- python开源项目贡献_为开源项目做出第一笔贡献
python开源项目贡献 一个常见的误解是,为开源做出贡献是困难的. 您可能会想:"有时候我什至不了解自己的代码:我应该如何理解别人的代码?" 放松. 直到去年,我还是这么想. 阅 ...
- pigx框架费用_【开源项目】一篇文章搞掂:Pig微服务框架
1.项目开发环境和运行步骤 1.1.项目开发环境 Idea:2018.1.6 Maven:3.5.3 JDK:1.8.0_172 MySQL:5.7.19(之前安装8.0.11会运行失败) Redis ...
- 项目众包 开源项目_在开源项目之前要问的4个问题
项目众包 开源项目 在任何公司的开源部门中,最常见的任务之一就是评估内部软件,以查看是否可以很好地回报给社区. 在PayPal执行此任务时,我们发现通过Danese Cooper最初试图审查四个主要问 ...
- 开源项目是什么_在开源项目之前要了解什么
开源项目是什么 贵公司将内部项目作为开源发布. 恭喜你! 您知道您的代码已经准备就绪,但是您准备好承担所有新职责吗? 项目作为开源发布后,您的公司不仅要对该项目负责,而且还要对将围绕该项目形成的社区负 ...
最新文章
- 检查集群状态命令_巨杉数据库SequoiaDB巨杉Tech | 四步走,快速诊断数据库集群状态...
- oracle tns连接拒绝,TNS-12564: TNS: 拒绝连接(new)
- 点开计算机桌面选项怎么不见了,电脑桌面上的图标都不见了该怎么办?
- java 读取文件内容 实例_Java 实例 – 读取文件内容 - Java 基础教程
- linux目录隐藏技术,Linux环境下的高级隐藏技术
- 关于浏览器前进键和后退键样样式表冲突的问题
- 安装lxml,抓取、解析网页
- 【机器学习】机器学习从零到掌握之十 -- 教你使用Python实现决策树
- Ajax--同源策略,jsonp跨域传输原理(callback),
- 网页内容若使用gzip压缩--获得页面源码
- DOM判断节点类型分分钟搞定
- arcpy投影(一)——prj、gtf文件定义、路径及解析(arcmap,arcpro)
- 计算机职称英浯单词背记 app,8款经典背单词软件 帮你轻松过英语6级
- 腾讯云公网IP网络带宽收费价格表2023更新
- 渗透测试神器之metasploit
- NOIp2017——追求那些我一直追求的
- C1. Pokémon Army (easy version)(栈模拟)
- android 模拟器截屏 保存到模拟器,天天模拟器屏幕截图保存在哪里?天天模拟器图库位置介绍...
- 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述调用方法!
- 用topcoder准备cs 面试
热门文章
- 搭建堡垒机 jumpserver
- 关于瑞纽博环境集团李兵吃骗员工,拖欠员工4个多月工资至今未发,怎么办?
- 攻防世界(Web进阶区)——fakebook
- java 数组最后一个_面试官: 100万个成员的数组取第一个和最后一个有性能差距吗?...
- Android app抓包掉网解决
- java 数组的长度_JAVA怎样获取数组长度?
- i7 10700f和i5 10400f差距多大 i510400f和i710700f玩游戏区别
- 【建设银行登入、积分兑换】
- 黑洞超级计算机,超级计算机模拟:解开粒子从黑洞中逃脱之谜
- Laravel 5.5 视图 - 创建视图和数据传递