当我进入文件路径cd到文件路径〜/ repo / analysis_tools / fresh_sales /然后运行python3 apicall.py时,它运行正常,但是当我尝试使用python3〜/ repo / analysis_tools /将其添加到cron时python代码fresh_sales / apicall.py会返回错误:没有名为“ utils”的模块。
我当前的项目结构:
Analysis Tools:
- utils:
+ builders.py
+ load_config.py
- fresh_sales:
+ apicall.py
我的代码的开头:
import sys
import os
sys.path.append('..')
sys.path.append(os.path.dirname(os.path.realpath("..")))
sys.path.insert(0, '')
from utils.load_config import load_config
import requests
import json
from pandas.io.json import json_normalize
from utils.builders import build_local_db_from_config
from datetime import datetime
from sys import exit
答案 0 :(得分:1)
您的路径永远不会改变,您应该将项目根目录添加到路径:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
您也可以尝试相对导入,但是如果项目根目录中有main.py
之类的内容,这样做会更容易。在目录树中更高的位置调用脚本是结构错误的潜在迹象,但并非总是如此。