React项目中跨目录导入Python工具类Helpers.py失败的问题求助
React项目中跨目录导入Python工具类Helpers.py失败的问题求助
我正在开发一个React应用,同时用Python代码实现一些自动化功能。现在我发现不同的Python组件里重复写了不少代码,想把这些通用的Python函数统一放到一个工具类Helpers.py里,让所有组件都能方便调用,避免重复造轮子。
原本的项目结构与正常调用情况
之前和问题相关的项目结构是这样的:
/src /reducers /localData Helpers.py txt_to_jsx_converter.py
Helpers.py的代码如下:
import argparse import os from openai import OpenAI from dotenv import load_dotenv from pathlib import Path class Helpers: def read_file(filepath): """Read a file... Args: filepath (string): path to file that I want to read contents of """ with open(filepath, "r", encoding="utf-8") as f: file_content = f.read() return file_content def get_api_key(name, root_project): """Get api key Args: name (string): name that I assigned it in the .env file root_project (string): root project directory """ # name of file where my API keys are stored... env = '.env.local' # load the file... load_dotenv(Path(f"{root_project}/{env}")) # now we retrieve the API key we want... API_KEY = os.getenv(name) return API_KEY
当时在同目录的txt_to_jsx_converter.py里调用是完全正常的,代码示例:
from Helpers import Helpers API_KEY = Helpers.get_api_key(name="OPENAI_API_KEY") client = OpenAI(api_key=API_KEY)
两次优化尝试均失败
尝试1:将Helpers.py移到根目录的pythonhelpers文件夹
我新建了根目录的pythonhelpers文件夹,把Helpers.py移了进去,现在项目结构变成:
/pythonhelpers Helpers.py /src ...
VS Code自动帮我把txt_to_jsx_converter.py里的导入语句改成了:
from pythonhelpers.Helpers import Helpers
而且VS Code里 hover 这个pythonhelpers时,显示它是一个模块,但实际运行Python脚本时,却弹出了错误:
from pythonhelpers.Helpers import Helpers ModuleNotFoundError: No module named 'pythonhelpers'
这和VS Code的提示完全矛盾,我搞不懂为什么。
尝试2:使用多级相对路径导入
后来我试着改成相对路径导入,写了一串点:
from .....pythonhelpers.Helpers import Helpers
结果运行时又报了另一个错误:
from .....pythonhelpers.Helpers import Helpers ImportError: attempted relative import with no known parent package
我到底哪里操作错了?有没有大佬能帮我看看问题出在哪?
备注:内容来源于stack exchange,提问作者nbofni
相关产品推荐
相关产品推荐

