在问这个问题之前,我已经在stackoverflow中查看了类似的问题,但是没有一个能帮助我解决这个问题。你知道吗
我有一个Django
项目叫做testrun
。你知道吗
-rw-r--r-- 1 pribeiro Users 196608 Dec 5 21:38 db.sqlite3
drwxr-xr-x 20 pribeiro Users 680 Dec 19 16:14 graphs
-rw-r--r-- 1 pribeiro Users 250 Dec 4 20:11 manage.py
drwxr-xr-x 8 pribeiro Users 272 Dec 12 21:57 parser
drwxr-xr-x 10 pribeiro Users 340 Dec 23 09:56 testrun
我有一个名为graphs
的应用程序,在testrun
内(graphs
已作为INSTALLED_APPS
添加到testrun/settings.py
):
-rw-r--r-- 1 pribeiro Users 0 Dec 4 23:05 __init__.py
-rw-r--r-- 1 pribeiro Users 739 Dec 5 21:45 admin.py
drwxr-xr-x 7 pribeiro Users 238 Dec 19 09:07 migrations
-rw-r--r-- 1 pribeiro Users 3945 Dec 19 09:07 models.py
-rw-r--r-- 1 pribeiro Users 5057 Dec 19 16:14 parser.py
drwxr-xr-x 2 pribeiro Users 68 Dec 12 18:33 static
drwxr-xr-x 3 pribeiro Users 102 Dec 5 22:31 staticfiles
drwxr-xr-x 3 pribeiro Users 102 Dec 5 22:32 templates
-rw-r--r-- 1 pribeiro Users 343 Dec 19 15:22 test_parser.py
-rw-r--r-- 1 pribeiro Users 60 Dec 4 23:05 tests.py
-rw-r--r-- 1 pribeiro Users 149 Dec 12 18:22 urls.py
-rw-r--r-- 1 pribeiro Users 287 Dec 12 18:29 views.py
我试着运行python manage.py shell
,然后:
>>> from testrun.graphs.models import *
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: No module named graphs.models
因此,在graphs\parser.py
中,我尝试导入存在于models.py
中的类,因为我在解析表示models.py
中类的.json
文件时需要它们:
from graphs.models import *
class Parser:
def __init__(self, filename=''):
self.api_test = APITest()
而APITest
是models.py
中的一个类:
import datetime
from django.db import models
class APITest(models.Model):
#... def goes here
当我执行graphs\parser.py
时,我得到:
$ python parser.py
Traceback (most recent call last):
File "parser.py", line 8, in <module>
from graphs.models import *
ImportError: No module named graphs.models
有人能解释一下为什么不起作用吗?你知道吗
试试看
并添加 从.models导入APITest
至分析器.py然后跑 python管理.py贝壳
为了管理Django中的依赖关系,最好使用pythonvirtualenv。你知道吗
如果您只想从命令行从Django运行一些逻辑,请尝试使用编写自定义Django管理命令。 https://docs.djangoproject.com/en/dev/howto/custom-management-commands/
如果你想要我的剧本_分析器.py您可以将它放在graphs/management/commands/folder中,并将其作为python-manage-my-u解析器运行。你知道吗
我的\u解析器的代码如下所示
第一个不起作用,因为你有:
但应该是:
因为pythonpath已经指向
testrun
项目目录。第一次导入将查看testrun/testrun/
目录,我猜这不是您想要的。你知道吗第二个不起作用,因为我假设您从
graphs
目录执行文件。如果从那里执行文件,导入将不起作用,因为导入假定python路径指向testrun
项目根目录。你知道吗相关问题 更多 >
编程相关推荐