gpt4 book ai didi

django - 验证 django 项目时出现问题,没有名为 'project name' 的模块

转载 作者:行者123 更新时间:2023-12-04 03:10:21 25 4
gpt4 key购买 nike

不幸的是,关于这个的回溯并不是很有启发性,所以希望有人能给我指出正确的方向。

当我尝试运行 syncdb、validate 或 runserver 时,我得到以下回溯:

Traceback (most recent call last):
File "manage.py", line 14, in <module>
execute_manager(settings)
File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 436, in execute_manager
setup_environ(settings_mod)
File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 419, in setup_environ
project_module = import_module(project_name)
File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
ImportError: No module named osps

其中 osps 是我的项目名称。 manage.py 文件没有被触及,看起来是 django 在创建项目时生成的标准文件。 osps 在我的 settings.py 中被引用了两次。一次在数据库名称声明中作为 os.path.dirname(__file__)+'/osps.db' 一次在标准 ROOT_URLCONF = 'OSPS.urls' 中。

此外,在项目范围内快速搜索不会出现任何 import osps 语句。有什么建议吗?

最佳答案

确保你的目录看起来像这样。

-- osps\
|-- app1\
| `-- ...
|-- __init__.py <- makes this a module
|-- manage.py
|-- settings.py
`-- urls.py

最坏的情况下,将这一行放在 settings.py 的顶部:

import os.path.dirname as d, sys.path as p; p.insert(0,d(d(__file__)))

这会将您项目的父文件夹置于导入链的顶部。更好的办法是删除对顶级项目的所有引用。无论如何,它不应该是应用程序之间任何引用的一部分。这是可插拔/可重用应用程序的最佳实践。在这种情况下,

import os.path.dirname as _d, sys.path as _p; _p.insert(0,_d(__file__))

关于django - 验证 django 项目时出现问题,没有名为 'project name' 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7169951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com