在Linux中运行时Python无法找到模块

时间:2019-07-25 04:52:16

标签: python python-3.x module

当我进入文件路径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

1 个答案:

答案 0 :(得分:1)

您的路径永远不会改变,您应该将项目根目录添加到路径:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)

您也可以尝试相对导入,但是如果项目根目录中有main.py之类的内容,这样做会更容易。在目录树中更高的位置调用脚本是结构错误的潜在迹象,但并非总是如此。