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

Replit环境安装Wagtail创建超级用户报common-passwords.txt.gz缺失错误

Replit环境Wagtail创建超级用户报common-passwords.txt.gz缺失问题

问题现象

在Replit的Python repl环境中通过pip安装Wagtail,启动项目后尝试创建超级用户时触发报错:
FileNotFoundError: [Errno 2] No such file or directory: '/home/runner/.cache/pip/pool/f7/e7/0e/common-passwords.txt.gz'
初步排查为Wagtail依赖的Django密码校验模块无法找到common-passwords.txt.gz常用弱密码字典文件导致。

完整错误堆栈

~/NecessaryOffbeatEvents/mysite$ python3 manage.py createsuperuser
Username (leave blank to use 'runner'): 
Email address: 
Password: 
Password (again): 
Traceback (most recent call last):
  File "/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/contrib/auth/password_validation.py", line 236, in __init__
    with gzip.open(password_list_path, "rt", encoding="utf-8") as f:
  File "/nix/store/2vm88xw7513h9pyjyafw32cps51b0ia1-python3-3.8.12/lib/python3.8/gzip.py", line 58, in open
    binary_file = GzipFile(filename, gz_mode, compresslevel)
  File "/nix/store/2vm88xw7513h9pyjyafw32cps51b0ia1-python3-3.8.12/lib/python3.8/gzip.py", line 173, in __init__
    fileobj = self.myfileobj = builtins.open(filename, mode or 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '/home/runner/.cache/pip/pool/f7/e7/0e/common-passwords.txt.gz'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
    utility.execute()
  File "/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 440, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/core/management/base.py", line 414, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 87, in execute
    return super().execute(*args, **options)
  File "/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/core/management/base.py", line 460, in execute
    output = self.handle(*args, **options)
  File "/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 182, in handle
    validate_password(password2, self.UserModel(**fake_user_data))
  File "/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/contrib/auth/password_validation.py", line 50, in validate_password
    password_validators = get_default_password_validators()
  File "/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/contrib/auth/password_validation.py", line 22, in get_default_password_validators
    return get_password_validators(settings.AUTH_PASSWORD_VALIDATORS)
  File "/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/contrib/auth/password_validation.py", line 36, in get_password_validators
    validators.append(klass(**validator.get("OPTIONS", {})))
  File "/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/contrib/auth/password_validation.py", line 239, in __init__
    with open(password_list_path) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/home/runner/.cache/pip/pool/f7/e7/0e/common-passwords.txt.gz'

解决方法

报错核心原因是Replit环境会定期清理pip缓存,Django默认记录的pip缓存路径下的弱密码字典被清除,任选以下一种方法处理即可:

  • 方法1:补全缺失路径和文件
    先执行命令创建报错提示里不存在的目录:
    mkdir -p /home/runner/.cache/pip/pool/f7/e7/0e/
    再把Django安装目录里自带的密码字典复制到刚创建的目录下,当前环境的Django存放在虚拟环境的site-packages路径中,直接执行复制命令:
    cp /home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/contrib/auth/common-passwords.txt.gz /home/runner/.cache/pip/pool/f7/e7/0e/
    操作完成后重新执行创建超级用户的命令即可正常运行。该方法治标不治本,后续Replit清理pip缓存后可能再次出现同类问题。
  • 方法2:修改配置固定密码字典路径(推荐)
    打开项目目录下的settings.py文件,找到AUTH_PASSWORD_VALIDATORS配置段,定位到CommonPasswordValidator对应的配置项,添加OPTIONS参数指定字典文件的绝对路径,修改后配置示例如下:
    AUTH_PASSWORD_VALIDATORS = [
        {
            'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
        },
        {
            'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
        },
        {
            'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
            'OPTIONS': {
                'password_list_path': '/home/runner/NecessaryOffbeatEvents/venv/lib/python3.8/site-packages/django/contrib/auth/common-passwords.txt.gz'
            }
        },
        {
            'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
        },
    ]
    
    保存配置后再执行创建超级用户命令即可,该方法直接指定了文件的固定存放位置,不会受pip缓存清理影响。
  • 方法3:临时关闭常用弱密码校验(仅测试环境可用)
    如果只是本地搭建测试环境,不需要弱密码校验逻辑,可以直接把AUTH_PASSWORD_VALIDATORS里CommonPasswordValidator对应的整段配置注释或者删除,保存后再执行创建超级用户操作就不会读取该字典文件,自然不会触发报错。生产环境禁止使用该方法,会大幅降低账号安全性。

内容的提问来源于stack exchange,提问作者Omar Abdul-Hafiz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:39:18