django和fdfs自定义存储时报错,configparser.NoOptionError: No option 'connect_timeout' in section: '__config__'

configparser.NoOptionError: No option ‘connect_timeout’ in section: ‘config
我在使用django和fdfs自定义文件存储时,测试上传文件,报了这个错误。
django和fdfs自定义存储时报错,configparser.NoOptionError: No option 'connect_timeout' in section: '__config__'_第1张图片
这个问题,一步步排查到最后,发现是因为我的安装包是之前老师给的,而我查到源码后发现这个安装包不适合python3 版本。

在读取配置文件时,我是使用了get_tracker_conf()方法传入cilent.conf的,但这方法内部在读取的时候,最终调用的是utils.py文件中的read方法,而read方法中有个判断条件是判断我们传入的文件名是否为basestring类型的,但basestring类型是python2中的数据类型,在python 3解释器中会报错,所以根本原因就是这个。

如果你想知道你遇到的问题是否跟我的一样,可以去看我的另一篇文章fdfs踩坑全记录,里面详细说了我遇到的是什么样的,并且是如何排查解决的。

解决方法是直接更换安装包:

解决方法:
1、找到你原先安装的fdfs_client两个包,都删掉;可能会提示无法删除,那就进入终端删除。
django和fdfs自定义存储时报错,configparser.NoOptionError: No option 'connect_timeout' in section: '__config__'_第2张图片
我的是在/usr/local/lib/python3.5/dist-packages下面的:
sudo rm -r fdfs_client
sudo rm -r fdfs_client_py-1.2.6.dist-info
django和fdfs自定义存储时报错,configparser.NoOptionError: No option 'connect_timeout' in section: '__config__'_第3张图片
2、重新下载:
不用切换环境,直接在终端出入pip install py3Fdfs
django和fdfs自定义存储时报错,configparser.NoOptionError: No option 'connect_timeout' in section: '__config__'_第4张图片
接下来就能在项目中找到了
django和fdfs自定义存储时报错,configparser.NoOptionError: No option 'connect_timeout' in section: '__config__'_第5张图片

并且安装的py3Fdfs还有2点需要注意的,否则会报错:
详情看这位老哥说的。
https://www.cnblogs.com/jrri/p/11570089.html
主要就是说:
1、在获取client.conf配置文件时,一定要先调用get_trcker_conf()去获取,而不能直接把文件作为参数传给Fdfs_client()对象;
2、在保存文件的时候,它会返回一个字典,里面包含一个文件名,这个我们要返回去保存的,但它的类型是bytes,需要解码,加上decode().

你可能感兴趣的:(Django报错)