首页 > 解决方案 > 无法识别 Django 应用程序中的导入模块

问题描述

 File "C:\Users\User\projects\Datascience\Bee_Word_Project\spellbee\views.py", line 4, in <module>
    from . import beewordpick 
  File "C:\Users\User\projects\Datascience\Bee_Word_Project\spellbee\beewordpick.py", line 4, in <module>
    import pyttsx3
ModuleNotFoundError: No module named 'pyttsx3'

实际上,上面的 pyttsx3 模块是 pip 安装的。Django 未在其搜索列表中识别 env PATH。它仅在本地应用程序路径中搜索模块。

谁能推荐如何在 Django 中设置对导入模块的搜索?在 settings.py 中必须做什么?当我使用 FLASK 应用程序运行相同的模块时,我可以运行该应用程序。

(test) PS C:\Users\User\projects\Datascience\Bee_Word_Project> pip freeze
   asgiref==3.2.10
   Django==3.1.2
   pytz==2020.1
   sqlparse==0.3.1

如果我将该库添加到我上面的工作路径中,它可以识别,但它不是从 sys env PATH 库中挑选的,因为这个模块是 python 包添加到本地环境后,它工作正常。但是今天,突然之间,由于 pyttsx3 中的模块无法正常工作-驱动程序 ModuleNotFoundError at /spellbee/ No module named 'comtypes' Request Method: POST Request URL: http://xxxxxxx/spellbee/ Django Version: 3.1 .2 异常类型:ModuleNotFoundError 异常值:
没有名为“comtypes”的模块异常位置:C:\Users\User\projects\Datascience\Bee_Word_Project\pyttsx3\drivers\sapi5.py,第 1 行,Python 可执行文件:C:\Users \User\Envs\test\Scripts\python.exe Python 版本:3.8.5 Python 路径:
['C:\Users\User\projects\Datascience\Bee_Word_Project', 'C:\Users\User\Envs\test\Scripts\python38.zip', 'c:\users\user\appdata\local\programs\python \python38-32\DLLs', 'c:\users\user\appdata\local\programs\python\python38-32\lib', 'c:\users\user\appdata\local\programs\python\python38-32 ', 'C:\Users\User\Envs\test', 'C:\Users\User\Envs\test\lib\site-packages']

标签: pythondjangoimport

解决方案


... Django 没有在他们的搜索列表中识别 env PATH ...

我认为你错过了一些小事。Django 与 env 无关,一切都与 django 运行的地方有关。如果你在环境中运行 django,它使用 env pip 模块,如果它在本地运行,它使用本地 pip 模块

现在在您的(test)环境中,pyttsx3 没有安装在 pip 列表中

在 env 和 local 中尝试pip install pyttsx3,然后进行测试

有时您需要在已安装的应用程序中添加模块:

INSTALLED_APPS = [
...
'pyttsx3',
...
]

推荐阅读