文章目录

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

项目文件下载

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使用 +路径问题...相关推荐

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

    文章目录 将项目部署到本地的完整版尝试 项目文件下载 PyCharm中新建项目 下载的项目文件转移到PyCharm的项目文件 安装项目需要的相应版本的函数库 开启visdom 运行`main.py`文 ...

  2. 服务启动失败_将控制台程序转换为服务运行

    移花接木 在上一篇文章<限制程序只能同时启动一个实例-唯一>中,我们详细讨论了在Windows中,将软件设置为开机启动的方法.从而实现保护程序开机的时候自动保护服务的运行. 有的时候,我们 ...

  3. java 博客系统_讲解开源项目:5分钟搭建私人Java博客系统

    本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和运行 Tale 项目.示例均在 Windows 操作系统下演示 本文作者:HelloGitHub-秦人 HelloGitHub 推出的< ...

  4. 她偏爱雏菊一样的淡黄色_为什么开源项目(非常)偏爱新用户,以及您可以采取什么措施...

    她偏爱雏菊一样的淡黄色 by Filip Hracek 由Filip Hracek 为什么开源项目(非常)偏爱新用户,以及您可以采取什么措施 (Why open source projects (sa ...

  5. android上传项目到码云_直播开源项目

    AVRtmpPushSDK 欢迎关注 AVRtmpPushSDK 直播开源项目,这是一个由 kotlin .C++ 编写的项目.整个项目完成了采集. 视音频处理.编码.数据发送前处理.数据发送的功能. ...

  6. python开源项目贡献_为开源项目做出第一笔贡献

    python开源项目贡献 一个常见的误解是,为开源做出贡献是困难的. 您可能会想:"有时候我什至不了解自己的代码:我应该如何理解别人的代码?" 放松. 直到去年,我还是这么想. 阅 ...

  7. 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 ...

  8. 项目众包 开源项目_在开源项目之前要问的4个问题

    项目众包 开源项目 在任何公司的开源部门中,最常见的任务之一就是评估内部软件,以查看是否可以很好地回报给社区. 在PayPal执行此任务时,我们发现通过Danese Cooper最初试图审查四个主要问 ...

  9. 开源项目是什么_在开源项目之前要了解什么

    开源项目是什么 贵公司将内部项目作为开源发布. 恭喜你! 您知道您的代码已经准备就绪,但是您准备好承担所有新职责吗? 项目作为开源发布后,您的公司不仅要对该项目负责,而且还要对将围绕该项目形成的社区负 ...

最新文章

  1. 检查集群状态命令_巨杉数据库SequoiaDB巨杉Tech | 四步走,快速诊断数据库集群状态...
  2. oracle tns连接拒绝,TNS-12564: TNS: 拒绝连接(new)
  3. 点开计算机桌面选项怎么不见了,电脑桌面上的图标都不见了该怎么办?
  4. java 读取文件内容 实例_Java 实例 – 读取文件内容 - Java 基础教程
  5. linux目录隐藏技术,Linux环境下的高级隐藏技术
  6. 关于浏览器前进键和后退键样样式表冲突的问题
  7. 安装lxml,抓取、解析网页
  8. 【机器学习】机器学习从零到掌握之十 -- 教你使用Python实现决策树
  9. Ajax--同源策略,jsonp跨域传输原理(callback),
  10. 网页内容若使用gzip压缩--获得页面源码
  11. DOM判断节点类型分分钟搞定
  12. arcpy投影(一)——prj、gtf文件定义、路径及解析(arcmap,arcpro)
  13. 计算机职称英浯单词背记 app,8款经典背单词软件 帮你轻松过英语6级
  14. 腾讯云公网IP网络带宽收费价格表2023更新
  15. 渗透测试神器之metasploit
  16. NOIp2017——追求那些我一直追求的
  17. C1. Pokémon Army (easy version)(栈模拟)
  18. android 模拟器截屏 保存到模拟器,天天模拟器屏幕截图保存在哪里?天天模拟器图库位置介绍...
  19. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述调用方法!
  20. 用topcoder准备cs 面试

热门文章

  1. 搭建堡垒机 jumpserver
  2. 关于瑞纽博环境集团李兵吃骗员工,拖欠员工4个多月工资至今未发,怎么办?
  3. 攻防世界(Web进阶区)——fakebook
  4. java 数组最后一个_面试官: 100万个成员的数组取第一个和最后一个有性能差距吗?...
  5. Android app抓包掉网解决
  6. java 数组的长度_JAVA怎样获取数组长度?
  7. i7 10700f和i5 10400f差距多大 i510400f和i710700f玩游戏区别
  8. 【建设银行登入、积分兑换】
  9. 黑洞超级计算机,超级计算机模拟:解开粒子从黑洞中逃脱之谜
  10. Laravel 5.5 视图 - 创建视图和数据传递