我已经在谷歌上搜索了一整天,但没有找到解决方案,希望你能帮忙:
使用 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
这是我的文件 fillDB.py:
from builds.models import BuildsTable
moboDB = open("db.txt", "r")
lines = moboDB.read().split('\",')
print lines
def main():
global lines
global BuildsTable
for item in lines:
mobo = BuildsTable.objects.get(moboListing="%s" % item[0])
price_local = BuildsTable.objects.get(moboListing="%s" % item[1])
if(BuildsTable.objects.filter(
moboListing = mobo, price = price_local).exists() == False):
mydb = BuildsTable(moboListing = mobo, price = price_local)
mydb.save()
main()
这是我制作的“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。
最佳答案
您需要在 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
希望这对你有帮助
关于python - Django ImportError 没有命名的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23209242/