为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 bash 中导入包而不出现 ModuleNotFoundError

如何在 bash 中导入包而不出现 ModuleNotFoundError

有只小跳蛙 2023-07-27 09:44:30
当我在 .sh 文件中运行 python 文件时,出现错误“ModuleNotFoundError”。首先这是目录结构。- my_project/--- common_lib/----- __init__.py----- my_module.py--- dir_1/----- test.py----- test.sh这是每个文件的内容。common_lib/初始化.pydef test_func():    print(1)common_lib/my_module.pydef module_func():    print("This is module.")dir_1/test.pyimport common_lib as clcl.test_func()dir_1/test.sh#!/usr/bin/env bashpython test.py当我使用“vs code”或“pycharm”等编辑器直接运行test.py文件时,我得到了正确的结果“1”。但是当我运行 test.sh 文件时,出现以下错误。ModuleNotFoundError:没有名为“common_lib”的模块在这种情况下,如何导入 python 包而不出现“无模块错误”?
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

将(空)__init__.py放入包根目录以及所有子目录中。然后您可以将脚本作为模块调用dir_1:


.

├── __init__.py

├── common_lib

│   └── __init__.py

└── dir_1

    ├── __init__.py

    ├── test.py

    └── test.sh

test.sh:


#!/usr/bin/env bash

cd .. && python -m dir_1.test

输出:


./test.sh

1


查看完整回答
反对 回复 2023-07-27
  • 1 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信