当我在 .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
添加回答
举报
0/150
提交
取消