首页 > 技术文章 > FastDFS 运行报错:configparser.NoOptionError: No option 'connect_timeout' in section: '__config__'

Leviathangk 2021-04-28 17:09 原文

FastDFS运行报错

如果你报错了,请安装

pip install py3Fdfs

仍然报错

这就要开始分析了呀,网上分析一大堆,基本上都是上面的解决方案,在于不同python版本的兼容性问题
但是还有一种可能,那就是路径

发现问题

我是在 scrapy 中自定义了 FastFsFilesStore 存储方案
由于本人一直使用下面代码运行程序

from scrapy.cmdline import execute

execute('scrapy crawl file_test'.split())

这样子不会有任何的错误
但是如果切换到命令行就会报错

configparser.NoOptionError: No option 'connect_timeout' in section: '__config__'

经过分析测试源码,我发现脚本运行的路径和它的 read 出来的路径不一致

# 正确:脚本
D:\\Python\\Test\\format_data\\format_data\\common\\client.conf

# cmd:错误路径
D:\Python\Test\format_data\common\client.conf

经测试,cd 一下到 format_data 即可解决问题,但是并不是最优解,但是也是知道了问题在哪
实际上最根本的就是读不到 scrapy 设置里面的 os.getcwd() 只能读取后面的部分路径(字符串内的),所以会有这个问题

最终解决

1、运行时切换到指定目录下

2、配置写全路径,不能使用 os 模块拼凑

3、直接将读取出来的配置放到 python 里面,通过它自带的模块再载入连接,也就是说不去读文件了(推荐)

推荐阅读