ModuleNotFoundError 是 Python 中常见的错误之一,表示 Python 解释器无法找到指定的模块。当从外壳脚本(如 Bash 脚本)运行 Python 文件时,可能会遇到这个错误,通常是因为 Python 解释器无法正确识别模块的路径。
virtualenv 或 conda),可以隔离不同项目的依赖,避免冲突。从外壳脚本运行 Python 文件时出现 ModuleNotFoundError 错误,通常有以下几种原因:
确保外壳脚本中指定的 Python 解释器路径是正确的。例如:
#!/bin/bash
/usr/bin/python3 /path/to/your_script.py可以通过以下几种方式设置模块路径:
-m 选项:-m 选项:PYTHONPATH 环境变量:PYTHONPATH 环境变量:如果在虚拟环境中工作,确保激活虚拟环境:
source /path/to/your/virtualenv/bin/activate
python /path/to/your_script.py假设有一个项目结构如下:
my_project/
├── main.py
└── my_module/
└── __init__.pymain.py 内容如下:
from my_module import some_function
some_function()my_module/__init__.py 内容如下:
def some_function():
print("Hello from my_module!")从外壳脚本运行 main.py:
#!/bin/bash
export PYTHONPATH=./my_project:$PYTHONPATH
python ./my_project/main.py通过以上方法,可以有效解决从外壳脚本运行 Python 文件时出现的 ModuleNotFoundError 错误。