基于this template我想创建自己的CLI界面来管理我们的服务。基本上,这个CLI框架使用检查将CLI参数/命令与模块“命令”中的成员类相匹配,并通过.run()
方法实现它
我的一个命令应该是'fetch',它基本上从FTP服务器下载一些数据。
所以我的命令模块中有一个fetch.py类。
当我在这个动态实例化的模块成员中执行from ftplib import FTP
时,它会立即失败并在ftplib中的socket.py中出现奇怪的TypeError
看来,ftplib存在以这种方式导入的问题(像json这样的其他库工作得很好)。
答案 0 :(得分:0)
看来,ftplib是唯一一个在动态加载模块中导入问题的模块。
因此,在我需要它来获取一些文件之前,我在片刻中动态加载了ftplib。 importlib
帮助了我:
ftplib = importlib.import_module('ftplib')
之后,我能够以经典的方式使用ftplib:
with ftplib.FTP(config['FTP']['Host']) as ftp:
ftp.login(user=config['FTP']['User'], passwd=config['FTP']['password'])