无法在 Python/Django 中导入文件

vic*_*tor 0 python django

我不确定发生了什么,但在我自己的笔记本电脑上,一切正常。当我使用 Python 2.3.5 上传到主机时,views.py 在 models.py 中找不到任何内容。我有:

from dtms.models import User
from dtms.item_list import *
Run Code Online (Sandbox Code Playgroud)

我的模型、item_list 和视图文件位于 /mysite/dtms/

它最终告诉我它找不到用户。有任何想法吗?

另外,当我使用 django shell 时,我可以执行“from dtms.models import *”并且它工作得很好。

好的,在执行以下建议后,我得到一个日志文件:

syspath = ['/home/victor/django/django_projects', '/home/victor/django/django_projects/mysite']
DEBUG:root:something <module 'dtms' from '/home/victor/django/django_projects/mysite/dtms/__init__.pyc'> 
DEBUG:root:/home/victor/django/django_projects/mysite/dtms/__init__.pyc
DEBUG:root:['/home/victor/django/django_projects/mysite/dtms']
Run Code Online (Sandbox Code Playgroud)

我不完全确定这意味着什么 - 我的文件位于 mysite/dtms/item_list.py 中。这是否意味着它正在加载?我看到 dtms 模块正在加载,但仍然找不到 dtms.models

Ale*_*lli 5

有效的事实from X import *并不能保证它from X import Wowie也会有效,你知道(如果你能戒掉这种import *瘾,从长远来看你会更快乐,但是,这是另一个问题;-)。

我对导入问题的一般建议是将有问题的导入用 try/ except 括起来:

try:
  from blah import bluh
except ImportError, e:
  import sys
  print 'Import error:', e
  print 'sys.path:', sys.path
  blah = __import__('blah')
  print 'blah is %r' % blah
  try:
    print 'blah is at %s (%s)' % (blah.__file__, blah.__path__)
  except Exception, e:
    print 'Cannot give details on blah (%s)' % e
Run Code Online (Sandbox Code Playgroud)

等等。这通常很快就会告诉你你的 sys.path 不是你想象的那样,和/或废话是在一些奇怪的地方或奇怪的路径,等等。