目录
sklearn
sklearn.metrics.f1_score报错“ValueError: pos_label=1 is not a valid label. It should be one of ['No', 'Yes']”
gitpython
ImportError: cannot import name 'SupportsIndex'
pyparsing
AttributeError: ‘version_info‘ object has no attribute ‘version‘
scipy
AttributeError: module 'scipy.misc' has no attribute 'imsave'
numpy
AttributeError: 'numpy.ndarray' object has no attribute 'append'
ValueError: Object arrays cannot be loaded when allow_pickle=False
pandas
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
nltk
Resource stopwords not found.
opencv
pymysql
RuntimeError: ‘cryptography‘ package is required for sha256_password
用pymysql操作数据库插入数据,数据库里面却没有数据的问题
其他
AssertionError:
sqlite3找不到指定模块
multiprocessing和threading全局变量共享的问题
Tkinter按钮未按却自动执行command中定义的函数
Flask
Windows环境下安装pycocotools报错
标签没有转成编码
二分类用0和1表示
我是python 3.6,最新版的gitpython不兼容,需要装老版本,比如2.1.15
版本问题,我用pip install pyparsing==2.4.7解决
scipy.misc.imsave(save_path, img)
在scipy 1.2以上版本不可用。
可以安装imageio
然后用imageio.imsave(save_path, img)
数组不支持append。解决办法就是用list append再转数组。
卸载掉numpy 1.16.3,安装numpy 1.16.2
pip3 install numpy==1.16.2
或者在np.load里指定allow_pickle=True
dataset.ix[i, 0]方法已被移除
可以用iloc
dataset.iloc[i,0]
使用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填充。
安装:
pip install openpyxl
代码:
dataframe = pd.read_excel(PATH, engine='openpyxl')
前提nltk库已安装
打开cmd,进入python环境,或者其他方式进入python环境
import nltk
nltk.download('stopwords')
不过国内访问不了下载地址
所以也给个网盘地址:百度网盘 请输入提取码,提取码:znx7
如果使用anaconda环境,要放到envs\环境名\nltk_data目录下
Python中的各种报错-opencv-python_天边一坨浮云的博客-CSDN博客
安装cryptography
pip install cryptography
执行完excute那一行语句以后,要有commit语句
比如
......
cur.execute(xxxx)
cur.connection.commit()
......
Found no NVIDIA driver on your system. Please check that you
have an NVIDIA GPU and installed a driver from
Download Drivers | NVIDIA
需要NVIDIA的GPU
File "E:\Anaconda3\envs\NLR\lib\site-packages\nltk\corpus\__init__.py", line 66, in
将sqlite3.dll复制到python环境的DLLs文件夹下
对于以下代码,用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=fun,而不是command=fun(a)
若要给函数传递参数,需要在函数前添加lambda。
command = lambda: fun(a)
app = Flask(__name__)
这个__name__的值是'__main__'
在pycharm调试模式下报错NoneType object is not iterable
pycharm运行模式下并不报错
改为
app = Flask('项目根目录名字')
原因不详
需要有visual c++环境,安装之后再pip install pycocotools即可