我有一个Python构建的系统,我现在想用一个普通的cron定期运行一些函数。所以我做了这开始了这样的文件:直接运行文件时只有ImportError
#!/usr/bin/env python
from app.models import User
当我从交互式Python命令行导入文件我没有任何问题:
>>> from app.crons import scrapeChannels
>>>
但是,当我直接运行该文件终端我得到的导入错误:
$ /home/kramer65/app/crons/scrapeChannels.py
Traceback (most recent call last):
File "/home/kramer65/app/crons/scrapeChannels.py", line 2, in <module>
from app.models import User
ImportError: No module named app.models
现在,我认为这事做的事实,app.models
不在sys.path中的,但从这点我有点迷失。我的想法是否正确?我该如何解决这个问题?
欢迎所有提示!
你不能在一个包中运行一个脚本*,并希望Python拿起整个包,不。将脚本**放在'app'包的**外部,并且/或将'/ home/kramer65'添加到'PYTHONPATH'(通过环境变量或通过Python中的sys.path'操作)。 –
你为什么要在文件中导入'app.models',但是在命令行测试'app.crons'? – Dobz