gpt4 book ai didi

python - Django 的运行脚本 : No (valid) module for script 'filename' found

转载 作者:太空狗 更新时间:2023-10-30 02:09:04 24 4
gpt4 key购买 nike

我正在尝试使用 Django 扩展程序从 Django shell 运行脚本 RunScript .我以前做过,但它拒绝识别我的新脚本:

(env) mint@mint-VirtualBox ~/GP/GP $ python manage.py runscript fill_in_random_variants
No (valid) module for script 'fill_in_random_variants' found
Try running with a higher verbosity level like: -v2 or -v3

在运行任何其他脚本时工作正常:

(env) mint@mint-VirtualBox ~/GP/GP $ python manage.py runscript fill_in_variants
Success! At least, there were no errors.

我已经仔细检查过该文件是否存在,包括将其重命名为其他名称。我还尝试使用不存在的脚本名称运行命令:

(env) mint@mint-VirtualBox ~/GP/GP $ python manage.py runscript thisfiledoesntexist
No (valid) module for script 'thisfiledoesntexist' found
Try running with a higher verbosity level like: -v2 or -v3

错误是一样的。

为什么 RunScript 找不到我的文件?

最佳答案

RunScript 具有令人困惑的错误消息。当它根本找不到脚本时以及脚本中存在导入错误时,它会给出相同的错误。

这是一个产生错误的示例脚本:

import nonexistrentpackage

def run():
print("Test")

该示例对脚本有唯一规定的要求,即 run 函数。

将其保存为脚本文件夹中的 test_script.py(例如 project root/your app/scripts/test_script.py)。然后尝试运行它:

(env) mint@mint-VirtualBox ~/GP/GP $ python manage.py runscript test_script
No (valid) module for script 'test_script' found
Try running with a higher verbosity level like: -v2 or -v3

这与找不到文件的错误相同。现在取消注释导入行并重试:

(env) mint@mint-VirtualBox ~/GP/GP $ python manage.py runscript test_script
Test

据我所知,区分错误的唯一方法是使用详细 (-v2) 命令行选项,然后查看返回的第一个(向上滚动)错误:

(env) mint@mint-VirtualBox ~/GP/GP $ python manage.py runscript test_script -v2
Check for www.scripts.test_script
Cannot import module 'www.scripts.test_script': No module named 'nonexistrentpackage'.
Check for django.contrib.admin.scripts.test_script
Cannot import module 'django.contrib.admin.scripts.test_script': No module named 'django.contrib.admin.scripts'.
Check for django.contrib.auth.scripts.test_script
Cannot import module 'django.contrib.auth.scripts.test_script': No module named 'django.contrib.auth.scripts'.
Check for django.contrib.contenttypes.scripts.test_script
Cannot import module 'django.contrib.contenttypes.scripts.test_script': No module named 'django.contrib.contenttypes.scripts'.
Check for django.contrib.sessions.scripts.test_script
Cannot import module 'django.contrib.sessions.scripts.test_script': No module named 'django.contrib.sessions.scripts'.
Check for django.contrib.messages.scripts.test_script
Cannot import module 'django.contrib.messages.scripts.test_script': No module named 'django.contrib.messages.scripts'.
Check for django.contrib.staticfiles.scripts.test_script
Cannot import module 'django.contrib.staticfiles.scripts.test_script': No module named 'django.contrib.staticfiles.scripts'.
Check for django_extensions.scripts.test_script
Cannot import module 'django_extensions.scripts.test_script': No module named 'django_extensions.scripts'.
Check for scripts.test_script
Cannot import module 'scripts.test_script': No module named 'scripts'.
No (valid) module for script 'test_script' found

我们在哪里可以看到关键线:

No module named 'nonexistrentpackage'.

错误的共性似乎是因为扩展程序使用 import 运行脚本。如果它首先使用 os.path.isfile 检查文件是否存在会更明智。如果没有找到,则会抛出一条更明智的错误消息。

关于python - Django 的运行脚本 : No (valid) module for script 'filename' found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39322967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com