这是错误:
Traceback (most recent call last):
File "twitterstream.py", line 3, in <module>
from tweemo.models import TwitterStream
ImportError: No module named tweemo.models
背景:
在Django中我有一个简单的模型,如下所示:
from django.db import models
class TwitterStream(models.Model):
text = models.CharField()
从Django shell中我可以毫无问题地执行以下操作
>>> from tweemo.models import TwitterStream
>>> tweet = TwitterStream.objects.create(text = 'hello again')
>>> tweet.text
'hello again'
因为这在django shell中有效,我想我可以插入这一行:
>>> from tweemo.models import TwitterStream
进入任何常规python脚本,例如,将数据插入脚本中的TwitterStream模型(以及我的Mondo数据库中)。
基本上,我有一个脚本可以将twitter实时流打印到命令行。 Itried通过包含这个来修改它
>>> from tweemo.models import TwitterStream
并改变这个:
for line in response:
print response
进入这个:
for line in response:
tweet = str(tweet) + str(" ") + str(count)
tweet = TwitterStream.objects.create(text = line.strip())
count += 1
仅供参考:我的包含TwitterStream类的models.py位于我的应用程序'tweemo'中,该应用程序位于项目内,也称为“twitter”。我希望将实时流发送到mymongo数据库的python脚本与models.py文件 - tweemo app文件夹位于同一文件夹中。
我是Django / Mongo的新手,所以离开这里......
提前致谢
答案 0 :(得分:0)
Python将自动检查与输入脚本位于同一目录中的模块,因此您只需编写
即可from models import TwitterStream
当你在django shell中时,这种行为是不同的,因为django将项目根路径附加到sys.path
,Python也在searching for modules时使用。
答案 1 :(得分:0)
如果通过django shell导入模型,它必须通过项目文件夹中的py文件工作。 我唯一的猜测就是删除项目文件夹中的pyc文件并进行测试。如果没有,@ dannymilsom解决方案会派上用场:)