gpt4 book ai didi

python - 从终端运行脚本时出现 ModuleNotFoundError

转载 作者:太空狗 更新时间:2023-10-29 21:45:00 27 4
gpt4 key购买 nike

我有以下文件夹结构:

  • 应用
    • __init__.py
    • 工具
      • __init__.py
      • transform.py
    • 产品
      • __init__.py
      • fish.py

在 fish.py 中,我正在导入 transform,如下所示:import utils.transform

当我从 Pycharm 运行 fish.py 时,它运行得非常好。但是,当我从终端运行 fish.py 时,出现错误 ModuleNotFoundError: No module named 'utils'

我在终端中使用的命令:来自应用程序文件夹python products/fish.py

我已经研究过此处建议的解决方案:Importing files from different folder ,将应用程序文件夹的路径添加到 sys.path 中会有所帮助。但是我想知道是否有任何其他方法可以在不向 fish.py 添加两行代码的情况下使其工作。这是因为我在/products 目录下有很多脚本,不想在每个脚本中添加 2 行代码。

我研究了一些开源项目,我看到了很多从并行文件夹导入模块而不向 sys.path 添加任何内容的示例,例如这里: https://github.com/jakubroztocil/httpie/blob/master/httpie/plugins/builtin.py#L5

如何让它以同样的方式适用于我的项目?

最佳答案

您可能想要运行 python -m products.fish。它与 python products/fish.py 的区别在于,前者大致相当于在 shell 中执行 import products.fish(但使用 __name__ 设置为 __main__),而后者不知道它在包层次结构中的位置。

关于python - 从终端运行脚本时出现 ModuleNotFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50745094/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com