仅在 运行 文件直接导入时出现错误

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/')