[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.19visdom
:版本>=0.1.5torchsummary
:版本>=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
,并指明相应的参数。
然后等待结果就可以了。
[debug] 开源项目的本地使用:使用pip安装的函数库不能被anaconda和pycharm使用+visdom使用 +路径问题相关推荐
- visdom启动失败_[debug] 开源项目的本地使用:使用pip安装的函数库不能被anaconda和pycharm使用+visdom使用 +路径问题...
文章目录 将项目部署到本地的完整版尝试 项目文件下载 PyCharm中新建项目 下载的项目文件转移到PyCharm的项目文件 安装项目需要的相应版本的函数库 开启visdom 运行`main.py`文 ...
- 解决通过pip安装好的库无法被第三方编译器调用的问题
解决通过pip安装好的库无法被第三方编译器(pyham.spyder)调用的问题 #在这里以jieba库为例(适用于绝大数库) 问题阐述:通过cmd命令窗口调用命令pip install jieba成 ...
- anaconda的python环境下无法使用通过pip安装的python库
场景描述: 在那种anaconda之前,已经在centos中安装了python和pip,在安装anaconda和jupyter后,在anaconda(或jupyter的notebook)的python ...
- pip安装的python库Pycharm用不了
最近新入手了Mac M2芯片的MacBook Pro,官网下载了Pycharm,发现系统自带的python通过pip安装的python库文件,Pycharm可以显示导入,但是使用会报错.同理通过Pyc ...
- Ubuntu中python切换及pip 安装相应python库
更改python默认版本 只需在终端里面执行 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 10 ...
- pycharm pip安装_pycharm无法调用pip安装的第三方库
问题:pycharm无法调用pip安装的包 原因:pycharm没有设置解析器 解决方法: 打开pycharm->File->Settings->Project Interprete ...
- 利用pip安装python各种库
Python下载 到Python官网下载Python pycharm安装 到PyCharm网站下载文件 Python使用经常要使用到各种库,我经常使用pip命令进行库的安装 按Windows+R搜索c ...
- GitHub上12306开源项目如何本地启动,注意:不需要Python基础
这马上过年的,无意间发现GitHub上有一个开源的12306抢票工具,但是遗憾的是,该项目为python的项目,考虑到本人并无python基础,所以自己鼓捣了一天,总算可以将项目跑起来了.下面我来带领 ...
- 开源项目成熟度分析工具-利用github api获取代码库的信息
1.github api github api是http形式的api,功能还是比较丰富的,博主因为项目的原因主要用到的是提取project信息这项功能,返回的数据是JSON格式. api页:https ...
最新文章
- linux unset命令,Linux unset命令
- modalDialog注意点
- asp.net性能的技巧
- html弹窗确认取消公告代码,js 弹出确认与取消对话框的四种方法
- 微信 weui 初体验
- ORACLE 11G 搭建dataguard详细步骤(所有操作总结)
- 响应式网站设计_通过这个免费的四小时课程,掌握响应式网站设计
- casefold()方法
- php主动推送弹幕_源起网-织梦发布文档主动百度推送熊掌推送批量推送
- PHP特级课视频教程_第二集 网站大数据存储_李强强
- python代码写好了怎么运行-教你如何编写、保存与运行 Python 程序
- 一天一个小技巧(1)——CSDN编辑器中文字颜色、尺寸、类型修改
- 易建科技eKing Cloud招聘,快到碗里来~
- Android上使用MP3格式录制声音
- 可重复读隔离级别里的可能死锁
- 用于微信小程序的图文编辑器
- Pytorch:目标检测网络-人体关键点检测
- IE下载时中文文件名乱码解决
- 屏蔽烦人的百度搜索热点
- 二进制转十六进制(参考XYJ)
热门文章
- python3入门代码-Python3 入门教程 简单但比较不错
- 如何系统的自学python-应该怎样系统的学习Python标准库?
- 语音识别怎么最终识别出字?
- 30轧制过程的计算机控制系统,中厚板轧制过程计算机控制系统结构的研制(1)
- lsdyna如何设置set中的node_list_详解MySQL数据库如何实现类似Oracle的序列?
- php mysql 双条件排序_php – 是否有通过匹配多个条件进行排序的SQL技术?
- pycharm忽略whitespace警告
- LeetCode 617合并二叉树
- 制作好的app需要服务器吗,在直播app制作过程中,服务器是如何配置的?
- 工具箱锁打不开了怎么办_锁芯坏了门打不开怎么办?锁芯拆开的方法是什么?...