python - Django ModuleNotFoundError:没有名为“asgiref”的模块
问题描述
我有一个 Django 服务,我们试图与定期运行的主应用程序一起安排,以通过批处理脚本发送自动电子邮件。
Django 应用程序本身启动良好,但是当我尝试运行批处理脚本时,我得到以下回溯:
Traceback (most recent call last):
File "C:\Program Files\compuweather\compuweather\webapp\management\commands\send_all_clients.py",
line 2, in <module> from django.core.management.base import BaseCommand
File "C:\ProgramData\Anaconda3\lib\site-packages\django-3.2-
py3.8.egg\django\core\management\__init__.py", line 13, in <module>
from django.apps import apps
File "C:\ProgramData\Anaconda3\lib\site-packages\django-3.2-py3.8.egg\django\apps\__init__.py", line
1, in <module> from .config import AppConfig
File "C:\ProgramData\Anaconda3\lib\site-packages\django-3.2-py3.8.egg\django\apps\config.py", line 7,
in <module> from django.utils.deprecation import RemovedInDjango41Warning
File "C:\ProgramData\Anaconda3\lib\site-packages\django-3.2-py3.8.egg\django\utils\deprecation.py",
line 5, in <module>
from asgiref.sync import sync_to_async
ModuleNotFoundError: No module named asgiref
考虑到我将批处理文件设置为从安装了 Asgiref 的 anaconda 环境中运行,我觉得这很奇怪。我可以用 pip freeze 来验证这一点。以下是我正在使用的软件包版本:
asgiref==3.3.1
Django==3.1.6
我在这里看到了类似的问题,这是由于 Django 和 asgiref 包已过时。我已经尝试将 asgiref 和 Django 都更新到最新版本(列出的那些),但这也没有帮助。
查看回溯后,我最好的猜测是尝试使用已弃用的包(因此使用 deprecation.py)或需要在某处附加路径。如果是前者,我应该使用其他替代方法吗?
作为参考,这是我尝试使用的批处理文件:
call C:\ProgramData\Anaconda3\Scripts\activate.bat C:\ProgramData\Anaconda3
call activate test
"C:\ProgramData\Anaconda3\Python.exe" "C:\Program Files\compuweather\compuweather\webapp\management\commands\send_all_clients.py"
解决方案
您可以使用manage.py
从批处理中运行自定义管理命令并访问您的项目环境:
python C:\Program Files\compuweather\compuweather\manage.py send_all_clients
推荐阅读
- ios - 为什么没有出现“编辑操作”,但调用了 (_:editActionsForRowAt)
- firebase - 我想检查特定用户是否退出 Firestore 文档
- javascript - maps.googleapis.com 与 date.js 不兼容
- rust - 如何在结构上实现 ops::Mul 以便它与数字类型以及另一个结构一起使用?
- php - 将图像添加到轮播滑块
- scala - 高级类型的 flatMap 返回类型被解析为基 Iterable 而不是高级类型本身
- r - 在R中的时间序列中向下移动一列
- c++ - 在 C++ 中正确格式化 printf 时遇到问题
- php - 如何在 php 中仅显示 mysql 数据库中的第一张图片
- javascript - nodemailer 电子邮件未发送且未记录错误