在Pycharm中运行Django报错,如何解决呢?

img

C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\python.exe E:\djangoProject\manage.py runserver 8000 
Exception ignored in thread started by: <function check_errors.<locals>.wrapper at 0x0000021240ACF3A0>
Traceback (most recent call last):
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\management\commands\runserver.py", line 116, in inner_run
    autoreload.raise_last_exception()
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\autoreload.py", line 251, in raise_last_exception
    six.reraise(*_exception)
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\site-packages\django\__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\site-packages\django\apps\registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\site-packages\django\apps\config.py", line 94, in create
    module = import_module(entry)
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\admin\__init__.py", line 4, in <module>
    from django.contrib.admin.filters import (
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\admin\filters.py", line 10, in <module>
    from django.contrib.admin.options import IncorrectLookupParameters
  File "C:\Users\xxklpz\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\admin\options.py", line 12, in <module>
    from django.contrib.admin import helpers, widgets
SyntaxError: Generator expression must be parenthesized (widgets.py, line 152)

```

您在PyCharm中运行Django时遇到了一个报错。根据报错信息,是由于在Django框架的django.contrib.admin.options模块中的widgets.py文件的第152行存在语法错误。

该错误是由于Python 3.9中对生成器表达式的解析有了更严格的要求导致的。解决此问题的方法是在widgets.py文件的第152行中,将生成器表达式用括号括起来。

您可以尝试按照以下步骤进行解决:

  1. 打开widgets.py文件(位于E:\djangoProject\manage.py目录下的django\contrib\admin文件夹中)。
  2. 找到第152行,检查是否有类似以下的代码:
    some_variable = (x for x in some_list if some_condition)
    
  3. 修改该行代码,将生成器表达式用括号括起来:
    some_variable = ((x for x in some_list if some_condition))
    
  4. 保存文件并重新运行Django。

请注意,这只是一种可能的解决方案,并且基于报错信息进行推测。如果问题仍然存在,请检查其他可能的语法错误或与Django版本和Python版本的兼容性相关的问题。

【以下回答由 GPT 生成】

根据报错信息,问题是找不到名为'django'的模块。可能的原因是您的项目环境缺少了Django库。

要解决这个问题,您可以按照以下步骤进行操作:

步骤一:检查项目虚拟环境

  1. 首先,确保您的项目中有一个虚拟环境。虚拟环境可以确保项目的依赖项与系统的全局环境隔离开来。
  2. 在PyCharm中,您可以通过打开项目,然后选择File -> Settings -> Project: [项目名] -> Python Interpreter 的路径查看已配置的Python解释器。
  3. 确保您的虚拟环境已经正确配置,并且包含了Django。

步骤二:安装Django

  1. 如果虚拟环境没有安装Django,您可以通过在PyCharm的Terminal中运行以下命令来安装它:pip install django
  2. 这将会安装最新版本的Django。

步骤三:重新运行项目

  1. 安装完毕后,尝试重新运行项目并检查问题是否解决。
  2. 您可以通过点击PyCharm工具栏上的绿色运行按钮(或使用快捷键Shift + F10)来运行项目。
  3. 如果您的项目中存在多个Python解释器,确保您选择的是正确的虚拟环境。

如果您按照上述步骤进行操作,但问题仍然存在,可能需要进一步调查是否存在其他问题,比如项目设置、路径配置等。

希望以上解决方案对您有所帮助。如果您有任何其他问题,请随时询问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

参考GPT:希望可以解决你的问题:

根据提供的错误信息,问题出现在文件”D:\Python\djangoproject\manage.py”的第116行。

错误类型为SyntaxError,错误原因是在文件”D:\Python\djangoproject\django\contrib\admin\options.py”的第152行中,生成器表达式缺少括号。

要解决这个问题,您需要在”D:\Python\djangoproject\django\contrib\admin\options.py”文件的第152行周围添加括号,
确保正确的语法。修改后的代码应该类似于:

widget = [widget for widget in widget_list if isinstance(widget, (widgets.TextInput, widgets.NumberInput))][0]
完成修改后,保存文件并重新运行您的代码,应该能够解决这个SyntaxError错误。