目录
_csv.Error: need to escape, but no escapechar set
lmdb.Error: data_list/train.lmdb: ���̿ռ䲻�㡣
lmdb.MapFullError: mdb_put: MDB_MAP_FULL: Environment mapsize limit reached
ImportError: cannot import name 'SupportsIndex'
AttributeError: ‘version_info‘ object has no attribute ‘version‘
AttributeError: module 'scipy.misc' has no attribute 'imsave'
AttributeError: 'numpy.ndarray' object has no attribute 'append'
ValueError: Object arrays cannot be loaded when allow_pickle=False
pandas 报错 AttributeError: 'DataFrame' object has no attribute 'ix'
pd.DataFrame报错:ValueError: arrays must all be same length
Pandas读取Excel文件XLRDError: Excel xlsx file; not supported
RuntimeError: ‘cryptography‘ package is required for sha256_password
用pymysql操作数据库插入数据,数据库里面却没有数据的问题
安装Dlib时出现“failed build wheel for Dlib”问题
multiprocessing和threading全局变量共享的问题
Windows环境下安装pycocotools报错
zipfile
使用zipfile解压,中文乱码
将cp437改为gbk,参考代码:
def unzip(file_path, dir_path):
with zipfile.ZipFile(file=file_path, mode="r") as zip_ref:
for file_info in zip_ref.infolist():
file_info.filename = file_info.filename.encode('cp437').decode('gbk')
zip_ref.extract(file_info, dir_path)
csv
_csv.Error: need to escape, but no escapechar set
指定 escapechar 参数
writer = csv.writer(file, delimiter=',', quoting=csv.QUOTE_NONE, escapechar=',')
lmdb
lmdb.Error: data_list/train.lmdb: ���̿ռ䲻�㡣
map_size改小一点,或者不要赋值
lmdb.MapFullError: mdb_put: MDB_MAP_FULL: Environment mapsize limit reached
map_size改大一点
sklearn
sklearn.metrics.f1_score报错“ValueError: pos_label=1 is not a valid label. It should be one of ['No', 'Yes']”
标签没有转成编码
二分类用0和1表示
gitpython
ImportError: cannot import name 'SupportsIndex'
我是python 3.6,最新版的gitpython不兼容,需要装老版本,比如2.1.15
pyparsing
AttributeError: ‘version_info‘ object has no attribute ‘version‘
版本问题,我用pip install pyparsing==2.4.7解决
scipy
AttributeError: module 'scipy.misc' has no attribute 'imsave'
scipy.misc.imsave(save_path, img)
在scipy 1.2以上版本不可用。
可以安装imageio
然后用imageio.imsave(save_path, img)
numpy
AttributeError: 'numpy.ndarray' object has no attribute 'append'
数组不支持append。解决办法就是用list append再转数组。
ValueError: Object arrays cannot be loaded when allow_pickle=False
卸载掉numpy 1.16.3,安装numpy 1.16.2
pip3 install numpy==1.16.2
或者在np.load里指定allow_pickle=True
pandas
pandas 报错 AttributeError: 'DataFrame' object has no attribute 'ix'
dataset.ix[i, 0]方法已被移除
可以用iloc
dataset.iloc[i,0]
pd.DataFrame报错:ValueError: arrays must all be same length
使用DataFrame(dict) 来用dict构建DataFrame时,key会变成列column,(list-like)values会变为行row,每个values中的list长度不一致,就会产生这个错误。
解决方法: df = pd.DataFrame.from_dict(d, orient='index') #d为要构建的dict
最终产生结果: 行数为key值,列数为最长的values的长度,而其他较短的values则用None填充。
Pandas读取Excel文件XLRDError: Excel xlsx file; not supported
安装:
pip install openpyxl
代码:
dataframe = pd.read_excel(PATH, engine='openpyxl')
nltk
Resource stopwords not found.
前提nltk库已安装
打开cmd,进入python环境,或者其他方式进入python环境
import nltk
nltk.download('stopwords')
不过国内访问不了下载地址
所以也给个网盘地址:百度网盘 请输入提取码,提取码:znx7
如果使用anaconda环境,要放到envs\环境名\nltk_data目录下
opencv
Python中的各种报错-opencv-python_天边一坨浮云的博客-优快云博客
pymysql
RuntimeError: ‘cryptography‘ package is required for sha256_password
安装cryptography
pip install cryptography
用pymysql操作数据库插入数据,数据库里面却没有数据的问题
执行完excute那一行语句以后,要有commit语句
比如
......
cur.execute(xxxx)
cur.connection.commit()
......
Packet sequence number wrong
短时间内MySQL连接太多导致。
用连接池可以解决。
其他
安装Dlib时出现“failed build wheel for Dlib”问题
安装visual studio,勾选C++开发包
AssertionError:
Found no NVIDIA driver on your system. Please check that you
have an NVIDIA GPU and installed a driver from
需要NVIDIA的GPU
sqlite3找不到指定模块
File "E:\Anaconda3\envs\NLR\lib\site-packages\nltk\corpus\__init__.py", line 66, in <module> from nltk.corpus.reader import * File "E:\Anaconda3\envs\NLR\lib\site-packages\nltk\corpus\reader\__init__.py", line 105, in <module> from nltk.corpus.reader.panlex_lite import * File "E:\Anaconda3\envs\NLR\lib\site-packages\nltk\corpus\reader\panlex_lite.py", line 15, in <module> import sqlite3 File "E:\Anaconda3\envs\NLR\lib\sqlite3\__init__.py", line 23, in <module> from sqlite3.dbapi2 import * File "E:\Anaconda3\envs\NLR\lib\sqlite3\dbapi2.py", line 27, in <module> from _sqlite3 import * ImportError: DLL load failed: 找不到指定的模块。
将sqlite3.dll复制到python环境的DLLs文件夹下
multiprocessing和threading全局变量共享的问题
对于以下代码,用multiprocessing时无效,因为multiprocessing是多进程,进程间无法共享全局变量,但用threading可以,因为threading是多线程。
multiprocessing可以用管道的方式传输。
注意使用全局变量前,要先用global声明。
from threading import Thread,Lock
global_num = 0
def func1():
global global_num
for i in range(1000000):
lock.acquire()#两个线程会最开始抢这个锁,拿到锁就会处于关锁,执行后面的程序,其他线程执行处于监听状态,等待这个线程开锁,再抢锁
global_num += 1
lock.release()
print('---------func1:global_num=%s--------'%global_num)
def func2():
global global_num
for i in range(1000000):
lock.acquire()
global_num += 1
lock.release()
print('--------fun2:global_num=%s'%global_num)
print('global_num=%s'%global_num)
lock = Lock()
t1 = Thread(target=func1)
t1.start()
t2 = Thread(target=func2)
t2.start()
Tkinter按钮未按却自动执行command中定义的函数
tkinter要求由按钮(或者其它的插件)触发的控制器函数不能含有参数
即command=fun,而不是command=fun(a)
若要给函数传递参数,需要在函数前添加lambda。
command = lambda: fun(a)
Flask
app = Flask(__name__)
这个__name__的值是'__main__'
在pycharm调试模式下报错NoneType object is not iterable
pycharm运行模式下并不报错
改为
app = Flask('项目根目录名字')
原因不详
Windows环境下安装pycocotools报错
需要有visual c++环境,安装之后再pip install pycocotools即可