Python中跨文件夹访问ConfigurationManager类的问题
解决Python跨目录导入模块的问题
问题原因
Python的模块搜索路径默认不包含test_script.py所在目录的上级目录,因此直接import configs会提示找不到模块。另外你编写的configs/__init__.py内容有误,需要修正。
解决方案
方法一:在脚本中添加根目录到搜索路径
在test_script.py的最开头添加以下代码,将包含configs文件夹的根目录加入Python的模块搜索路径:
import sys import os # 获取根目录(包含configs和simulaton_scripts的文件夹) root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(root_dir) # 现在可以正常导入配置类 import numpy as np from configs.config_manager import ConfigurationManager as cfg
方法二:修正__init__.py并简化导入
修改configs/__init__.py的内容为:
from .config_manager import ConfigurationManager
之后在test_script.py中(已添加根目录到路径的前提下),可以用更简洁的方式导入:
from configs import ConfigurationManager as cfg
方法三:设置系统环境变量(无需修改代码)
将根目录(比如D:\code)添加到PYTHONPATH环境变量中:
- Windows:在命令行执行
或者在系统环境变量中永久添加set PYTHONPATH=D:\code;%PYTHONPATH%PYTHONPATH,值为D:\code - Linux/macOS:在终端执行
若要永久生效,可将该命令添加到export PYTHONPATH="/path/to/root_dir:$PYTHONPATH"~/.bashrc或~/.zshrc中
内容的提问来源于stack exchange,提问作者skm
相关产品推荐
相关产品推荐

