为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

饮歌长啸 2023-01-04 11:15:35
在审查有关此主题的现有案例后,我尚未找到解决方案。我正在尝试运行我的 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”。关于在哪里可以找到问题的根源,是否有任何明显的建议?通常,追溯会提供有关文件位置的重要线索。
查看完整描述

4 回答

?
森林海

TA贡献2011条经验 获得超2个赞

您在此处的元组中创建了一个元组


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 = []。


查看完整回答
反对 回复 2023-01-04
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

在:

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 = ()


查看完整回答
反对 回复 2023-01-04
?
慕村225694

TA贡献1880条经验 获得超4个赞

INSTALLED_APPS 应该看起来像字符串元组:

INSTALLED_APPS = ("app1", "app2")

但是您在其中某处列出了清单,即:

INSTALLED_APPS = ("app1", ["app2"])

检查https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps


查看完整回答
反对 回复 2023-01-04
?
噜噜哒

TA贡献1784条经验 获得超7个赞

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



查看完整回答
反对 回复 2023-01-04
  • 4 回答
  • 0 关注
  • 316 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信