Python Django ImportError没有名为的模块
我在谷歌上搜索了一整天,还没有找到解决方案,希望你能帮我: 使用Django 1.6,我制作了一个名为“builds”的应用程序,作为名为“computerbuilder”项目的一部分 当我使用测试服务器时,该站点工作正常,但是我创建了一个文件,用一些项目填充数据库,当我运行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>
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