python 深度学习 解决遇到的报错问题4

目录

一、DLL load failed while importing _imaging: 找不到指定的模块

二、Cartopy安装失败

三、simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

四、raise IndexError("single positional indexer is out-of-bounds")

五、TypeError: '_AxesStack' object is not callable


一、DLL load failed while importing _imaging: 找不到指定的模块

问题

原因:查看报错信息发现是导入from PIL import Image模块错误,查阅资料得知是pillow与python版本不匹配。由于我的pillow版本是在安装anaconda是默认安装的最高版本,因此需要降pillow的版本。

pillow与python的版本对应关系可参考这个博客:(1条消息) DLL load failed while importing _imaging: 找不到指定的模块的解决方法_masteryi-0018的博客-CSDN博客解决

(1)考虑到我是在anaconda创建的虚拟环境下创建的项目,因此我尝试使用conda命令进行卸载与安装,

 conda uninstall pillow
conda install pillow=8.3

但是没有解决。

(2)网上有人说是由于高版本的python,某些包的依赖包的版本没跟上,就会出现DLL的情况。

我目前的conda虚拟环境是python3.9,于是我换了一个conda虚拟环境python3.8的,发现没有报这个错了。

二、Cartopy安装失败

问题:在PyCharm中pip安装Cartopy库时遇到了报错

解决:查看Cartopy官方文档,可以使用Conda安装。

因为我已安装Anaconda编译器并进行了配置,安装Cartopy,在终端输入以下代码:

conda install -c conda-forge cartopy

等待一段时间,安装成功。

三、simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

问题

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

原因:大概率是 json.load()载入json文件时出现了错误,问题一般是由于json文件损坏或内容缺失,题主是因为open()文件的时候选择了read模式导致json文件被清空。 

四、raise IndexError("single positional indexer is out-of-bounds")

问题:使用pandas模块对csv文件进行读取,过程中遇到了报错

原因:指索引下标越界了,所以找到报错的地方检查下标是否在数据列表范围内。说白一些就是列表的最后一行数据不能向下计算了,需要忽略。

解决:想办法把它忽略掉,可以再遍历的时候将数值减一

五、TypeError: '_AxesStack' object is not callable

问题:在使用nx.draw时出现的一个错误,

原因:可能是目前安装的networkx版本有问题

解决

(1)网上有人说,升级networkx库的版本就可以了,

但是,我试了一下,还是不行。

(2)修改代码,调用nx.draw_networkx_edges

# nx.draw(G, pos, edge_color='lightseagreen', alpha=0.5)
nx.draw_networkx_edges(G, pos, edge_color='lightseagreen', width=2)  # 设置边的颜色

 目前全部代码:

import matplotlib.pyplot as plt
import networkx as nx
import numpy as np
import pickle

# 创建:空的 有向图
G = nx.MultiDiGraph()
row = np.array(['D1', 'D2', 'D3', 'D4', 'D5', 'F1', 'F2', 'F3', 'M1', 'M6', 'M3', 'M4', 'M5', 'G1'])
G.add_nodes_from(['D1', 'D2', 'D3', 'D4', 'D5', 'F1', 'F2', 'F3', 'M1', 'M6', 'M3', 'M4', 'M5', 'G1'])
value = np.array([12, 12, 34, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 13])
for j in range(0, 14):
    for i in range(0, 14):
        if i != j:
            G.add_weighted_edges_from([(row[j], row[i], 2)])  # 边的起点,终点,权重
        else:
            pass
node_sizes = [44, 22, 29, 20, 35, 11, 32, 20, 41, 22, 57, 10, 11, 20]
node_sizesnew = []
for i in node_sizes:
    i = i * 20
    node_sizesnew.append(i)
pos = {'D1': (37.29, 77.42), 'D2': (31.73, 59.91), 'D3': (40.47, 27.53), 'D4': (58.82, 15.55), 'D5': (46.29, 89.65),
       'F1': (72, 52), 'F2': (61.64, 45.73), 'F3': (59.22, 59.78), 'G1': (11.64, 49.73), 'M1': (50.55, 49.27),
       'M3': (46.56, 56.18), 'M4': (74.75, 74.25), 'M5': (58.25, 46), 'M6': (49.09, 61.09)}
nx.draw_networkx_nodes(G, pos, node_size=node_sizesnew, alpha=0.4)
nx.draw_networkx_labels(G, pos, font_size=8, )
# nx.draw(G, pos, edge_color='lightseagreen', alpha=0.5)
nx.draw_networkx_edges(G, pos, edge_color='lightseagreen', width=2)  # 设置边的颜色
plt.savefig("images/MATCH52.png", dpi=200, bbox_inches='tight')
plt.show()

发现可以了。

猜你喜欢

转载自blog.csdn.net/qq_45956730/article/details/131537830