Python 无法在os.chdir()之后导入模块

Python 无法在os.chdir()之后导入模块,python,python-3.x,importerror,Python,Python 3.x,Importerror,我有一个python文件,其中定义了类a,它位于与我工作的目录不同的目录中。我想在脚本中从该类导入一个模块。我在jupyter写了这样的东西: import os parent_dir = 'path/to/class' os.chdir(parent_dir) from A import a 它工作得非常好,我开始执行程序。但是,当我从终端在同一目录中运行脚本时,会出现以下错误: ModuleNotFoundError: No module named 'a' 我在错误之前放置了一个os

我有一个python文件,其中定义了类
a
,它位于与我工作的目录不同的目录中。我想在脚本中从该类导入一个模块。我在jupyter写了这样的东西:

import os
parent_dir = 'path/to/class'
os.chdir(parent_dir) 
from A import a
它工作得非常好,我开始执行程序。但是,当我从终端在同一目录中运行脚本时,会出现以下错误:

ModuleNotFoundError: No module named 'a'

我在错误之前放置了一个
os.getcwd()
,以确保它位于同一目录中,当我从终端转到该目录并直接导入模块时,没有错误。我想知道为什么在运行脚本时会出现此错误

不要使用
os.chdir
,因为它会更改全局状态,这可能导致其他地方出现意外行为

展开系统路径:

import sys
sys.path.append('/absolute/path/to/module')

您可以使用
from path.to.class import className

最好使用
sys.path.append(os.path.join(os.path.dirname(uu file_uu),'path/to/module')
@Jean-francoisfare:我有这个版本,但不确定OP是否使用相对于脚本文件的路径。