'List' 对象没有属性 'startswith' - 解决困难

在审查有关此主题的现有案例后,我尚未找到解决方案。


我正在尝试运行我的 python 服务器并继续运行此回溯:


    G:\inetpub\FaulknerandSonsLTD2\Website\Website>manage.py runserver

    Watching for file changes with StatReloader

    Exception in thread django-main-thread:

    Traceback (most recent call last):

      File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\threading.py", line 926, in

_bootstrap_inner

        self.run()

      File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\threading.py", line 870, in run

        self._target(*self._args, **self._kwargs)

      File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\site-packages\django\utils\autoreload.py", line 53, in wrapper

        fn(*args, **kwargs)

      File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\site-packages\django\core\management\commands\runserver.py", line 109, in inner_run

        autoreload.raise_last_exception()

      File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\site-packages\django\utils\autoreload.py", line 76, in raise_last_exception

        raise _exception[1]

      File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\site-packages\django\core\management\__init__.py", line 357, in execute

        autoreload.check_errors(django.setup)()

      File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\site-packages\django\utils\autoreload.py", line 53, in wrapper

        fn(*args, **kwargs)

      File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\site-packages\django\__init__.py", line 24, in setup

        apps.populate(settings.INSTALLED_APPS)


我尝试在整个项目中搜索短语“startswith”。


关于在哪里可以找到问题的根源,是否有任何明显的建议?通常,追溯会提供有关文件位置的重要线索。


饮歌长啸
浏览 317回答 4
4回答

森林海

您在此处的元组中创建了一个元组INSTALLED_APPS = (    "app",    "Website",    #some more apps    "allauth.socialaccount.providers.ynab",),删除我们得到INSTALLED_APPS = (),的与 相同的字符串INSTALLED_APPS = ((), ())。根据文档,您应该有一个列表,例如INSTALLED_APPS = [    "app",    "Website",    #some more apps    "allauth.socialaccount.providers.ynab",]请注意,最后一行没有逗号。删除我们现在得到的字符串INSTALLED_APPS = []。

Cats萌萌

在:File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\site-packages\django\__init__.py", > line 24, in setup你可以找到:    apps.populate(settings.INSTALLED_APPS)并在>       File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\site-packages\django\apps\registry.py", > line 91, in populate你可以找到:>         app_config = AppConfig.create(entry)并在:>       File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\site-packages\django\apps\config.py", > line 90, in create你可以找到:>         module = import_module(entry)并在:>       File "G:\Program Files (x86)\Microsoft Visual Studio\2019\Shared\Python37_64\lib\importlib\__init__.py", line 118, > in import_module你可以找到:>         if name.startswith('.'):但是 settings.INSTALLED_APPS 看起来不错,你确定你仍然有这个错误吗当我在 INSTALLED_APPS 的定义之后添加一个 ',' 时,我能够重现该问题AttributeError: 'tuple' object has no attribute 'startswith'请更换INSTALLED_APPS = (),到INSTALLED_APPS = ()

慕村225694

INSTALLED_APPS 应该看起来像字符串元组:INSTALLED_APPS = ("app1", "app2")但是您在其中某处列出了清单,即:INSTALLED_APPS = ("app1", ["app2"])检查https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps

噜噜哒

只是想添加我的解决方案,因为我也偶然发现了这个问题。它与代码中的任何错误无关,但与 python 系统设置有关。能够重现一个分支有错误而另一个没有,尽管没有代码更改。通过改回系统 python 修复。之前,由于升级 python 时出现类似错误,我已经转移到较低版本的 python。但是当我让 brew 和 pyenv 见面时似乎已经修复了。以便他们之前没有链接可能至少是我问题的根源,导致 py 和 depenedncy 不匹配?尽管没有代码错误,但最终导致了这个 endswith 错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python