调用由PyInstaller创建的外部exe文件时出现未知命令"syncdb

3 投票
1 回答
1542 浏览
提问于 2025-04-18 01:52

我有一个叫做 db 的文件夹。

这个 db 文件夹里有以下文件:
------ __init__.py
------ dbobject.py
------ models.py
------ settings.py

__init__.py 文件里面有一些内容。

from django.conf import settings

def syncdb():
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "db.settings")
    from django.core.management import call_command
    call_command('syncdb', interactive=False)

然后我用 Python 的 distutils 把这个 db 文件夹安装到了 site-packages 里。

现在我有另一个叫做 cron 的文件夹,里面有:

  • main.py
  • settings.py

settings.py 文件的内容是:

from db import syncdb
syncdb()

这里一切正常。

然后我把 main.py 做成了一个可执行文件。

运行 main.exe 后,出现了一个错误:

django.core.management.CommandError: Unknown Command: 'syncdb'

1 个回答

0

在运行你的 syncdb 函数之前,试着把当前工作目录切换到你的项目文件夹。

import os
from db import syncdb

os.chdir(path_to_your_project) # Change working dir.
syncdb()

撰写回答