无法运行django项目下的python文件

时间:2015-03-05 14:23:16

标签: python django

我的项目树就像。

├── sizer
│   ├── manage.py
│   ├── node
│   │   ├── __init__.py
│   │   ├── __init__.pyc
│   │   ├── models.py
│   │   ├── models.pyc
│   │   ├── node_serializer.py
│   │   ├── node_serializer.pyc
│   │   ├── part_serializer.py
│   │   ├── part_serializer.pyc
│   │   ├── Part_Serializer.pyc
│   │   ├── test.py
│   │   ├── test.pyc
│   │   ├── tests.py
│   │   ├── tests.pyc
│   │   ├── urls.py
│   │   ├── urls.pyc
│   │   ├── views.py
│   │   └── views.pyc
│   ├── requirement.txt
│   ├── sizer
│   │   ├── __init__.py
│   │   ├── __init__.pyc
│   │   ├── settings.py
│   │   ├── settings.pyc
│   │   ├── urls.py
│   │   ├── urls.pyc
│   │   ├── wsgi.py
│   │   └── wsgi.pyc
│   ├── solver
│   │   ├── attrib.py
│   │   ├── attrib.pyc
│   │   ├── cap.py
│   │   ├── cap.pyc
│   │   ├── __init__.py
│   │   ├── node.py
│   │   ├── node.pyc
│   │   ├── nodes1.json
│   │   ├── nodes2.json
│   │   ├── parts.json 
│   ├── strings.py
│   ├── strings.pyc
│   └── workload
│       ├── __init__.py
│       ├── __init__.pyc
│       ├── models.py
│       ├── models.pyc
│       ├── tests.py
│       ├── tests.pyc
│       ├── urls.py
│       ├── urls.pyc
│       ├── views.py
│       └── views.pyc

我已通过node命令创建了workloadmanage.py startapp app。

在上面的目录结构中,我复制了solver。现在我在sizer.py文件下导入我的node.model,如。

import json
from pulp import *

from attrib import *
from cap import *
from node import *
from wl import *
from sizer.node.models import Part,Node

当我运行python solver/sizer.py时,我一直在

ImportError: No module named node.models

请帮助我解决我在这里做错的事情。花了4个多小时仍无法弄明白。

由于

2 个答案:

答案 0 :(得分:1)

如果您的应用名称为node,那么您的导入语句应如下所示:

from node.models import Part, Node

请注意,这需要您已在node的{​​{1}}中加入INSTALLED_APPS

答案 1 :(得分:0)

导入可能失败的原因有很多。

  1. 模块不在路径上。在导入模块之前,在脚本中检查此打印sys.path。
  2. 模块已损坏,无法导入。您可以通过在与模块相同的目录中打开Python控制台并尝试导入来检查此问题。这有用吗?
  3. 导入模块会导致CIRCULAR导入。这意味着导入导入另一个导入另一个导入原始模块的模块的模块。这很容易避免一点思考和清晰的层次结构。
  4. 那么,你有哪些问题?我不知道因为我看不到sys.path,而且我看不到文件中的代码。

    我能看到的有点混乱。您有多个名为“node”的模块。您有多个级别的manage.py文件。您已将.pyc文件包含在输出中,而不是为读者编辑它们。你有很多不同的模块叫做'node','sizer'或'solver',它必须非常混乱,以确定在任何给定时间导入哪一个。

    您的潜在问题可能是您尝试在不使用源代码控制(git)的情况下处理项目,这意味着您不知道哪些更改破坏了事情,并且您不会因为没有进行大的更改而感到勇敢如果他们不能解决问题,那就回过头来。