环境配置__杂记

这篇博客记录了Python环境中遇到的各种问题及其解决方案,包括批量安装库、降低pip版本、conda配置、MXNet和OpenCV的安装、权限问题、模块导入错误、PyTorch报错等,并提供了相应的命令和解决方法。
摘要由CSDN通过智能技术生成

1 批量安装所需库

首先进入requirements.txt所在位置,然后运行下列命令。

pip install -r requirements.txt

2 升级后想要降低pip版本

当按照提醒升级pip版本后,会对安装低版本的package产生影响,因此,慎重升级。
当升级后想要降低pip版本时,使用下面的命令
降低pip版本到9.0.3

python -m pip install pip==9.0.3

3 强制使用pip安装whl文件

这个一般是用不到的。

pip install 文件名.whl --force-reinstall

4 关于/.condarc

conda的配置文件是 .condarc文件,网上有人说,.condarc文件是conda的运行时文件,实际上默认的是不存在的,所以想直接看到它只能通过命令行的形式进行查看。为了防止损坏文件还复制了一个.condarc.bak文件。

查看.condarc文件

cat ~/.condarc

编辑.condarc文件

vim ~/.condarc

.condarc文件是在home/naive下的,所以默认是在命令行的当前目录下。直接使用上述命令即可。

5 关于conda的下载源网址

当源有问题时,下载会出现错误,还需要进行一些设置文件的处理,所以失效的源链接要及时删掉,不然会影响package的安装。
之前添加了豆瓣源,中科大,阿里,这次发现这些源都不可用了。。我又重新用上了清华源。(现在的时间是2020年12月24日)

6 安装mxnet

安装mxnet,要与cuda版本相匹配,以下表示安装的是与cuda9.0匹配的mxnet。

pip install mxnet-cu90

7 安装opencv3 (import cv2)

pip 和 conda 了很多次,都安装失败,之后使用下列的命令安装成功。
使用国内镜像源安装。

conda install --channel https://conda.anaconda.org/menpo opencv3

8 安装opencv失败经历

(以下带有感情色彩)
#2020.12.20
#救命啊,这是我安装opencv最难的一次,不知道是什么原因,一直安装不上,找到了古老的教程,但步骤很复杂,中间设计到64位的计算机也说的含糊不清,是个失败的教程(如果我的是32位的就不失败了),总之我尝试了,半途而废的失败了。
#接着我使用 conda install opencv ,它提醒我安装了,但Exexcuting transaction:failed , 给出的解释是 permission denied ,但是没有提醒我该怎样解决。
#接着我继续尝试,先使用 conda install -c anaconda opencv ,提醒我应该先给anaconda赋权限,且说,使用 sudo conda ... 是不可取的,使用下列命令进行permission赋值。

sudo chown 1000:1000 /home/naive/anaconda3/pkgs/scikit-learn-0.19.0-np113py35_0/info/repodata_record.json

#接着再一次使用conda install -c anaconda opencv 命令,提醒我安装,随后安装成功。
#2020.12.21
#早上来遇到报错 EOFError('Compressed file ended before the end-of-stream marker was reached',) ,网上说是因为存在部分安装或已安装的文件,导致这种报错,接着尝试下面的解决方法。
#所以,上面尝试的方法又失败了
#接着,看到一篇使用opencv-python本地包安装的博客,opencv-Python下载地址为:

https://pypi.tuna.tsinghua.edu.cn/simple/opencv-python/

下载好 opencv_python-3.1.0.0-cp35-cp35m-manylinux1_x86_64.whl 本地文件,使用 pip install 文件名.whl进行安装,安装成功。

9 No module named 'numpy.testing.nosetester’解决方法

在import numpy的时候编译器提示这个问题,问题的原因是numpy版本>1.18,而scipy的版本<=0.19,所以只要把scipy的版本更新,比如1.1.0就行了
#在conda中查看各种package

pip show packagename

#升级包法1

pip instal --upgrade packagename

#升级包法2

pip install -U packagename

10 关于package的命令

#卸载包

pip uninstall packagename

#pip更新过期包(two methods)

pip list --outdated
pip list -o

#pip 查看所有安装包及版本

pip list

#pip、conda更新自己(two methods)

python -m pip install --upgrade pip
conda update conda

#conda更新包(two methods)

conda update --all
conda update packagename

11 permission denied

需要使用如下命令将anaconda的权限加入用户及其用户组中:

sudo chown -R 用户名 /home/用户名/anaconda3
eg: sudo chown -R naive /home/naive/anaconda3

12 import sklearn出错

#import sklearn出错,使用anaconda安装scikit-learn

conda install scikit-learn

13 pytorch报错:AttributeError: ‘module’ object has no attribute ‘_rebuild_tensor_v2’

网上有人说是由于old pytorch version 和new pytorch version 不兼容的原因,在出bug的程序头部加上如下命令,使两者能够兼容(我未能使用这种方式解决)。

import torch._utils
try:
    torch._utils._rebuild_tensor_v2
except AttributeError:
    def _rebuild_tensor_v2(storage, storage_offset, size, stride, requires_grad, backward_hooks):
        tensor = torch._utils._rebuild_tensor(storage, storage_offset, size, stride)
        tensor.requires_grad = requires_grad
        tensor._backward_hooks = backward_hooks
        return tensor
    torch._utils._rebuild_tensor_v2 = _rebuild_tensor_v2

但当我 try again的时候,程序卡住不动了。。。后面还是通过重新安装了pytorch版本解决了这个问题。。。

14 pycharm中单行和多行注释

#pycharm中单行和多行注释快捷方式

选中+ctrl+/

15 关于路径选择方式

#文件路径名称过长,程序有的时候会识别不出来
。。。可能会报参数过多之类的错误,所以用相对路径可能好些。
当前目录下的文件夹A

./文件夹A

当前目录的父目录

../

当前目录的父目录的父目录下的目录

../../

16 pytorch和torch 包共存的时候

#当conda中pytorch和torch package 同时存在时,会先使用pytorch包,因为我的pytorch是0.1.18,但会报错,而我的torch安装的是1.0.1,却没有使用。当我卸载掉conda uninstall pytorch==0.1.18时,它使用torch,但import cudnn会报错,猜测可能是cudnn版本问题,因为卸载掉原先的cudatoolkit 版本,重新安装。
#使用下列命令进行安装(未解决问题)

conda install cudatoolkit=9.0 -c https://mirrors.ustc.edu.cn/anaconda/pkgs/main/

后面还是没有解决cudnn报错的问题,还是通过重新安装了pytorch解决了这个问题。但这里为怎样安装cudatoolkit 9.0提供了解决的思路。

17 Object arrays cannot be loaded when allow_pickle=False

由于numpy版本的问题。安装numpy==1.16.2,解决了这个问题。

pip install numpy==1.16.2

18 TypeError: init() got an unexpected keyword argument ‘serialized_options’

这是由于包版本和python版本不匹配导致的,import哪个包报这个错,就升级那个包。

pip install -U 包名
#我这里报错的包是tensorboardX,所以我升级了它
pip install -U tensorboardX 

19 RuntimeError: CUDA out of memory. Tried to allocate 196.00 MiB (GPU 0; 7.79 GiB total capacity; 5.56

这里我调小了batchsize的值,程序就可以正常运行了。

至此,这篇博客就结束啦。希望这篇博客能够帮助和我经历过相同报错的人。但编程环境确实过于复杂,适合我的方法不一定适合你,只能说多尝试,总有一种方法能解决你的问题。
欢迎大家批评指正!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值