当文件包含来自不同目录的模块时,如何 运行 python 脚本?
How to run a python script when a file contains a module from different directory?
我有以下结构:
|-- master.py
|-- src
| |-- configs
| | |-- _init_.py
| | |-- config.py
|-- convert_speech
| |-- _init_.py
| |-- record_audio2.py
现在我想将模块从 configs.config 导入到 record_audio2.py 脚本中。我设法做到了这一点:
from src.configs.config import filenames
然而,当我 运行 master.py 我得到以下错误:
ModuleNotFoundError: 没有名为 'src'
的模块
我希望能够通过 运行ning master.py 以及 运行ning record_audio2.py 分别 运行 一切。目前只有 record_audio2.py 运行 次成功。
首先,要使 Python 将目录视为模块,它们必须有一个 __init__.py
文件。
现在,当 Python 处理模块的导入时,它使用 sys.path
这是查找文件的位置列表。默认情况下,它由以下组成:
- 当前目录或执行文件所在目录
- 你的
PYTHONPATH
- 您的 python 实例的安装文件夹
更多关于 here in the doc。
我建议您将 src
文件夹的路径添加到 sys.path
,它应该是这样的。
试试这个:
import ..configs.config import filename
我有以下结构:
|-- master.py
|-- src
| |-- configs
| | |-- _init_.py
| | |-- config.py
|-- convert_speech
| |-- _init_.py
| |-- record_audio2.py
现在我想将模块从 configs.config 导入到 record_audio2.py 脚本中。我设法做到了这一点:
from src.configs.config import filenames
然而,当我 运行 master.py 我得到以下错误:
ModuleNotFoundError: 没有名为 'src'
的模块我希望能够通过 运行ning master.py 以及 运行ning record_audio2.py 分别 运行 一切。目前只有 record_audio2.py 运行 次成功。
首先,要使 Python 将目录视为模块,它们必须有一个 __init__.py
文件。
现在,当 Python 处理模块的导入时,它使用 sys.path
这是查找文件的位置列表。默认情况下,它由以下组成:
- 当前目录或执行文件所在目录
- 你的
PYTHONPATH
- 您的 python 实例的安装文件夹
更多关于 here in the doc。
我建议您将 src
文件夹的路径添加到 sys.path
,它应该是这样的。
试试这个:
import ..configs.config import filename