Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django导入错误:没有名为apps的模块_Python_Django_Module_Directory_Importerror - Fatal编程技术网

Python Django导入错误:没有名为apps的模块

Python Django导入错误:没有名为apps的模块,python,django,module,directory,importerror,Python,Django,Module,Directory,Importerror,我刚刚用git签出了一个项目。项目结构如下: project apps myapp settings __init__.py __init__.py manage.py 还有其他目录和文件,但我认为这些是重要的 当我运行服务器时,我得到 Traceback (most recent call last): File "C:/Dev/project/apps/manage.py", line 10, in <modul

我刚刚用git签出了一个项目。项目结构如下:

project
  apps
    myapp
      settings
        __init__.py
      __init__.py
    manage.py
还有其他目录和文件,但我认为这些是重要的

当我运行服务器时,我得到

    Traceback (most recent call last):
  File "C:/Dev/project/apps/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 345, in execute
    settings.INSTALLED_APPS
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 46, in __getattr__
    self._setup(name)
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 98, in __init__
    % (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'apps.myapp.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named apps.myapp.settings
回溯(最近一次呼叫最后一次):
文件“C:/Dev/project/apps/manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“C:\Python27\lib\site packages\django\core\management\\ uuuuu init\uuuuu.py”,第385行,从命令行执行
utility.execute()
文件“C:\Python27\lib\site packages\django\core\management\\uuuu init\uuuuu.py”,第345行,在execute中
settings.INSTALLED\u应用程序
文件“C:\Python27\lib\site packages\django\conf\\ uuuuu init\uuuuu.py”,第46行,在__
自我设置(名称)
文件“C:\Python27\lib\site packages\django\conf\\ uuuuu init\uuuuu.py”,第42行,在安装程序中
自包装=设置(设置模块)
文件“C:\Python27\lib\site packages\django\conf\\ uuuuu init\uuuuu.py”,第98行,在uuu init中__
%(自我设置模块,e)
ImportError:无法导入设置“apps.myapp.settings”(是否在sys.path上?设置文件中是否存在导入错误?):没有名为apps.myapp.settings的模块
运行
manage.py check
时,我得到
ImportError:没有名为apps的模块。
因此,我想问题与我的设置模块无关,而与我的apps目录有关。
我不确定为什么它找不到我的模块应用程序,因为项目位于我的
sys.path
上,而且目录
apps
显然存在。作为一名Python开发人员,我不是很有经验,所以我自己也没有找到解决方案

您需要在
apps
文件夹中添加一个空的
\uuuuu init\uuuuuuuu.py
(总共4个下划线)文件,以便Python将其识别为包


查看以获取更多信息。

注意,在Django 1.9中有一个名为Django.apps的模块


通常建议避免与内置模块的名称冲突

如果您使用了
django admin startapp myapp
命令,它将创建以下文件:
myapp/apps.py

它可能与您的
应用程序/
模块文件夹冲突。隐藏的
apps.pyc
文件可能位于您的
myapp/
文件夹中

尝试删除以下内容:

  • project/apps/myapp/apps.py
  • project/apps/myapp/apps.pyc

请注意,在
Django 1.9
中,您可以将应用程序添加到
已安装的应用程序列表中

如果您的应用程序名为
app
,并且您已经在其中创建了模型,请转到
settings.py
文件并添加您的应用程序:

INSTALLED_APPS = [
    ...
    'app'
]

如果在运行以下操作之前,将应用程序安装在主项目文件夹中的
settings.py
,也可能发生这种情况:

python manage.py startapp [app-name]

注释出来,创建应用程序(现在应该可以工作了),然后将该行放回
设置.py
文件并继续。首先,检查您的
管理.py
,确保它正确引用了
myapp

…apps/myapp/manage.py

...
if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
...
如果设置正确,请检查Python解释器。如果您使用的是virtualenv,那么在使用全局Python而不是虚拟环境时可能会发生错误。全局Python的使用可能是由于在
manage.py
中未正确设置IDE、用户错误或bin/bash不正确造成的

要确保
manage.py
正在虚拟环境上运行,请检查
manage.py
中的第一行。默认情况下,该文件的内容为:

#!/usr/bin python
改为:

#!/path/to/virtualenv/bin python
现在,检查终端及其使用的Python版本。然后,激活virtualenv:

[user@pc] #: source /path/to/virtualenv/bin/activate 
(venv) [user@pc] #: pip list
确认Django已安装。如果是,但仍不能正常工作,则使用
pip
升级:

(venv) [user@pc] #: pip install --upgrade django

如果在Python版本正确的情况下上述任何一项都不起作用,那么您使用的是正确的Python环境,并且
manage.py
设置正确,那么这意味着错误在其他地方

命令:
python manage.py startapp\u name


类名必须与
models.py
文件中的
app\u name
相同,然后在
settings.py的
INSTALLED\u APPS
列表中添加
app\u name
,如果使用此命令启动应用程序:

django-admin startapp appexample
…然后,
AppexampleConfig
类不应列在
settings.py
文件中

只需在
INSTALLED_APPS
列表中添加应用程序名称(例如
appexample
)。避免使用:
appexample.app.AppexampleConfig


通常,
AppexampleConfig
类是代表django应用程序及其配置的
django.apps.Appconfig
类的一个子类。它只定义name class属性,并将其值设置为
Appexample

我在运行
python3 manage.py runserver
而不是
python manage.py runserver
后解决了这个问题
在这个问题上浪费了整整25分钟…

请确保您的应用程序位于项目的根目录中。我的意思是,如果您错误地在主目录外启动了一个应用程序,Django将无法找到您的应用程序,唯一的解决方案是将其移动到项目的主目录。屏幕截图显示了如何解决该问题 第一张图片显示了该愿望,并提示此错误,即运行应用程序时尚未加载应用程序

第二个屏幕截图显示了如何解决该问题。
这就是我的意思,应用程序应该位于主项目的同一目录中。在我的情况下,我的主目录是crmapp。

我遇到了完全相同的问题。 在settings.py中,我通过以下方式打印系统路径:

  import sys
  print(sys.path)
原来项目目录的主路径没有包括在内,所以我不得不在这里手动添加它

  import sys
  sys.path.append(<path to my main project dir>)
导入系统 sys.path.append()
对于因为添加新视图而在这里遇到此问题的人,我执行了上述由aumo验证的操作,为我添加了一个空的init.pyinsi
-- example-folder

  --   views
  -- `__init.py__`
  -- `index.py`

-- `__init.py__`
-- `urls.py`