You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pyftpdlib调用add_user函数报错缺少homedir参数的原因是什么

问题原因

你没有对DummyAuthorizer类进行实例化,直接将类本身赋值给了authorizer变量:

# 错误写法,缺少类实例化的括号
authorizer = DummyAuthorizer

类的实例方法(比如add_user)默认第一个参数是类实例本身(也就是self),如果直接调用类本身的方法,需要手动传入self参数,否则你传入的参数会整体前移一位,导致参数匹配错位:你传的'admin'被识别为self,'adminpass'被识别为username,'.'被识别为password,系统自然认为你缺少homedir参数,才会抛出对应的错误。

同时你的代码还缺少os、socket模块的导入,FTPHandler的配置逻辑也存在问题,运行时还会触发其他报错。

解决方法

修正类实例化逻辑,补全缺失的导入,调整后的完整可运行代码如下:

import socket
import os
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer

ip = socket.gethostbyname(socket.gethostname())
PATH = 'C:/Users/cuerv/Downloads/My code/Camera/Recordings'
os.chdir(PATH)

addr = (ip,21)
# 实例化DummyAuthorizer
authorizer = DummyAuthorizer()
authorizer.add_user('admin','adminpass','.',perm='elradfmw')

# 给FTPHandler绑定授权器
FTPHandler.authorizer = authorizer
server = FTPServer(addr, FTPHandler)
server.serve_forever()

内容的提问来源于stack exchange,提问作者Saw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:42:03