文章目录

  • 将项目部署到本地的完整版尝试
    • 项目文件下载
    • 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.pyPyCharm会自动提醒你不满足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的环境。

但是系统默认的pipPythonpip,我们平时使用的是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.pyPyCharm会自动提醒你不满足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.pyimport _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,并指明相应的参数。

然后等待结果就可以了。

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

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

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

  2. 解决通过pip安装好的库无法被第三方编译器调用的问题

    解决通过pip安装好的库无法被第三方编译器(pyham.spyder)调用的问题 #在这里以jieba库为例(适用于绝大数库) 问题阐述:通过cmd命令窗口调用命令pip install jieba成 ...

  3. anaconda的python环境下无法使用通过pip安装的python库

    场景描述: 在那种anaconda之前,已经在centos中安装了python和pip,在安装anaconda和jupyter后,在anaconda(或jupyter的notebook)的python ...

  4. pip安装的python库Pycharm用不了

    最近新入手了Mac M2芯片的MacBook Pro,官网下载了Pycharm,发现系统自带的python通过pip安装的python库文件,Pycharm可以显示导入,但是使用会报错.同理通过Pyc ...

  5. Ubuntu中python切换及pip 安装相应python库

    更改python默认版本 只需在终端里面执行 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 10 ...

  6. pycharm pip安装_pycharm无法调用pip安装的第三方库

    问题:pycharm无法调用pip安装的包 原因:pycharm没有设置解析器 解决方法: 打开pycharm->File->Settings->Project Interprete ...

  7. 利用pip安装python各种库

    Python下载 到Python官网下载Python pycharm安装 到PyCharm网站下载文件 Python使用经常要使用到各种库,我经常使用pip命令进行库的安装 按Windows+R搜索c ...

  8. GitHub上12306开源项目如何本地启动,注意:不需要Python基础

    这马上过年的,无意间发现GitHub上有一个开源的12306抢票工具,但是遗憾的是,该项目为python的项目,考虑到本人并无python基础,所以自己鼓捣了一天,总算可以将项目跑起来了.下面我来带领 ...

  9. 开源项目成熟度分析工具-利用github api获取代码库的信息

    1.github api github api是http形式的api,功能还是比较丰富的,博主因为项目的原因主要用到的是提取project信息这项功能,返回的数据是JSON格式. api页:https ...

最新文章

  1. linux unset命令,Linux unset命令
  2. modalDialog注意点
  3. asp.net性能的技巧
  4. html弹窗确认取消公告代码,js 弹出确认与取消对话框的四种方法
  5. 微信 weui 初体验
  6. ORACLE 11G 搭建dataguard详细步骤(所有操作总结)
  7. 响应式网站设计_通过这个免费的四小时课程,掌握响应式网站设计
  8. casefold()方法
  9. php主动推送弹幕_源起网-织梦发布文档主动百度推送熊掌推送批量推送
  10. PHP特级课视频教程_第二集 网站大数据存储_李强强
  11. python代码写好了怎么运行-教你如何编写、保存与运行 Python 程序
  12. 一天一个小技巧(1)——CSDN编辑器中文字颜色、尺寸、类型修改
  13. 易建科技eKing Cloud招聘,快到碗里来~
  14. Android上使用MP3格式录制声音
  15. 可重复读隔离级别里的可能死锁
  16. 用于微信小程序的图文编辑器
  17. Pytorch:目标检测网络-人体关键点检测
  18. IE下载时中文文件名乱码解决
  19. 屏蔽烦人的百度搜索热点
  20. 二进制转十六进制(参考XYJ)

热门文章

  1. python3入门代码-Python3 入门教程 简单但比较不错
  2. 如何系统的自学python-应该怎样系统的学习Python标准库?
  3. 语音识别怎么最终识别出字?
  4. 30轧制过程的计算机控制系统,中厚板轧制过程计算机控制系统结构的研制(1)
  5. lsdyna如何设置set中的node_list_详解MySQL数据库如何实现类似Oracle的序列?
  6. php mysql 双条件排序_php – 是否有通过匹配多个条件进行排序的SQL技术?
  7. pycharm忽略whitespace警告
  8. LeetCode 617合并二叉树
  9. 制作好的app需要服务器吗,在直播app制作过程中,服务器是如何配置的?
  10. 工具箱锁打不开了怎么办_锁芯坏了门打不开怎么办?锁芯拆开的方法是什么?...