仅在 运行 文件直接导入时出现错误
Only ImportError when running file directly
我有一个内置于 Python 的系统,我现在想在其中 运行 使用常规 cron 定期执行一些功能。所以我制作了一个这样开始的文件:
#!/usr/bin/env python
from app.models import User
当我从交互式 Python 命令行导入文件时没有问题:
>>> from app.crons import scrapeChannels
>>>
但是当我直接从终端 运行 文件时,我得到了 ImportError:
$ /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 中这一事实有关,但从这一点来看我有点迷路了。我的假设对吗?我该如何解决这个问题?
欢迎所有提示!
将包含 app
包的目录添加到您的 python 路径,使用 PYTHONPATH:
$ set PYTHONPATH=/home/kramer65
$ /home/kramer65/app/crons/scrapeChannels.py
我想如果你也想 运行 来自 cron 的脚本,最好是手动将 app
的父目录(似乎是 /home/kramer65/
添加到你的 sys.path
,在行 from app.models import User
.
之前
例子-
import sys
sys.path.append('/home/kramer65/')
我有一个内置于 Python 的系统,我现在想在其中 运行 使用常规 cron 定期执行一些功能。所以我制作了一个这样开始的文件:
#!/usr/bin/env python
from app.models import User
当我从交互式 Python 命令行导入文件时没有问题:
>>> from app.crons import scrapeChannels
>>>
但是当我直接从终端 运行 文件时,我得到了 ImportError:
$ /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 中这一事实有关,但从这一点来看我有点迷路了。我的假设对吗?我该如何解决这个问题?
欢迎所有提示!
将包含 app
包的目录添加到您的 python 路径,使用 PYTHONPATH:
$ set PYTHONPATH=/home/kramer65
$ /home/kramer65/app/crons/scrapeChannels.py
我想如果你也想 运行 来自 cron 的脚本,最好是手动将 app
的父目录(似乎是 /home/kramer65/
添加到你的 sys.path
,在行 from app.models import User
.
例子-
import sys
sys.path.append('/home/kramer65/')