我有一個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