【问题标题】:How to run a python script when a file contains a module from different directory?当文件包含来自不同目录的模块时,如何运行 python 脚本?
【发布时间】:2020-01-03 11:26:54
【问题描述】:

我有以下结构:

|-- 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”的模块

我希望能够通过运行 master.py 以及单独运行 record_audio2.py 来运行所有内容。目前只有 record_audio2.py 运行成功。

【问题讨论】:

    标签: python python-import importerror


    【解决方案1】:

    首先,要让 Python 将目录视为模块,它们必须有一个 __init__.py 文件。

    现在,当 Python 处理模块的导入时,它使用 sys.path,它是查找文件的位置列表。默认情况下,它由以下部分组成:

    1. 当前目录或文件执行所在目录
    2. 你的PYTHONPATH
    3. 你的python实例的安装文件夹

    更多关于 here in the doc.

    我建议你将src文件夹的路径添加到sys.path,它应该是这样的。

    【讨论】:

      【解决方案2】:

      试试这个:

      import ..configs.config import filename
      

      【讨论】:

      • 我从 ..configs.config 导入文件名 ValueError 得到以下错误:尝试相对导入超出顶级包
      • 从 ..configs.config 导入 *
      猜你喜欢
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 2019-12-31
      • 2016-08-01
      相关资源
      最近更新 更多