Python Django ImportError没有名为的模块

Python Django ImportError没有名为的模块,python,django,Python,Django,我在谷歌上搜索了一整天,还没有找到解决方案,希望你能帮我: 使用Django 1.6,我制作了一个名为“builds”的应用程序,作为名为“computerbuilder”项目的一部分 当我使用测试服务器时,该站点工作正常,但是我创建了一个文件,用一些项目填充数据库,当我运行python fillDB.py时,它给了我一个错误: Traceback (most recent call last): File "fillDB.py", line 1, in <module>

我在谷歌上搜索了一整天,还没有找到解决方案,希望你能帮我:

使用Django 1.6,我制作了一个名为“builds”的应用程序,作为名为“computerbuilder”项目的一部分

当我使用测试服务器时,该站点工作正常,但是我创建了一个文件,用一些项目填充数据库,当我运行
python fillDB.py
时,它给了我一个错误:

Traceback (most recent call last):
    File "fillDB.py", line 1, in <module>
        from builds.models import BuildsTable
ImportError: No module named builds.models
这是我制作的“builds”应用程序中的models.py文件:

from django.db import models
# Create your models here.

class BuildsTable(models.Model):
    id = models.AutoField(primary_key=True)
    moboListing = models.CharField(max_length=200)
    price = models.IntegerField()
我的目录如下所示:

├── builds
│   ├── admin.py
│   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── computerbuilder
│   ├── dev
│   │   ├── db.txt
│   │   ├── fillDB.py
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── views.py
│   ├── wsgi.py
├── manage.py
└── requirements.txt

因为我使用的是一个外部文件,而不是Django的一部分,所以我认为这就是为什么它很难识别它的原因。如果有帮助,也可以使用postgres。

检查sys.path以查看是否有您的路径。每次运行python项目时,python都会将当前路径附加到sys.path。一旦退出python环境,python将删除附加在其中的路径

您的问题是您只需运行fillDB.py,python只需将“../computerbuilder/dev”附加到sys.path中,所以python无法找到构建模块

解决方案是将fillDB.py文件移动到与builds文件夹相同的级别

├── builds    
├── fillDB.py
│   ├── admin.py
│   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── computerbuilder
│   ├── dev
│   │   ├── db.txt
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── views.py
│   ├── wsgi.py
├── manage.py
└── requirements.txt

希望它能帮助您:D

您需要在dev文件夹中添加init.py。因为它被视为python包。接下来,您需要在fillDB.py中添加django项目路径,如下所示

Root
 ├──├── builds
    │   ├── admin.py
    │   ├── __init__.py
    │   ├── models.py
    │   ├── tests.py
    │   └── views.py
    ├── computerbuilder
    │   ├── dev
    │   │   ├── db.txt
    │   │   ├── fillDB.py
    │   ├── __init__.py
    │   ├── settings.py
    │   ├── urls.py
    │   ├── views.py
    │   ├── wsgi.py
    ├── manage.py
    └── requirements.txt
按照上面的文件夹结构, 您还需要将django环境变量设置为此文件

fillDB.py

import sys
import os


if __name__ == "__main__":
    sys.path.append('/path/Root')
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "computerbuilder.settings")

    from builds.models import BuildsTable

    mobo = BuildsTable.objects.all()
    print mobo

希望这对您有所帮助

谢谢您的帮助,我尝试将文件移动到与“builds”相同的目录,但我遇到了相同的错误,我还尝试将其放在同一级别的单独文件夹中,并遇到了相同的错误。但是在我将
fillDB.py
文件放在与
manage.py
相同的级别之后,我现在得到了另一个错误:
django.core.exceptions.improverlyconfigured:
请求设置默认索引表空间,但未配置设置。在访问设置之前,您必须定义环境变量DJANGO_SETTINGS_MODULE或call SETTINGS.configure()。
谢谢,所以它的位置是
sys.path.append('/path/Root')
我必须将其更改为项目顶层目录的路径?谢谢,这很有效!但是现在我的代码有另一个问题,我将尝试修复它,谢谢你的帮助
import sys
import os


if __name__ == "__main__":
    sys.path.append('/path/Root')
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "computerbuilder.settings")

    from builds.models import BuildsTable

    mobo = BuildsTable.objects.all()
    print mobo