如何解决Ubuntu下PheWeb的ModuleNotFoundError: No module named 'pheweb.command_line'错误
解决PheWeb安装后
ModuleNotFoundError: No module named 'pheweb.command_line'问题 问题场景
在Ubuntu系统中,执行pip3 install pheweb时遇到权限错误,遂通过以下sudo命令完成安装:
sudo apt-get update sudo apt-get install python3-pip python3-dev libz-dev libffi-dev sudo python3 -m pip install wheel cython sudo python3 -m pip install pheweb
安装完成后执行pheweb --help验证,出现如下错误:
Traceback (most recent call last): File "/usr/local/bin/pheweb", line 5, in <module> from pheweb.command_line import main ModuleNotFoundError: No module named 'pheweb.command_line'
已尝试的无效操作:
- 执行
echo 'PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc并重启终端 - 将PheWeb安装路径
/usr/local/lib/python3.6/dist-packages添加到~/.bashrc的PATH中
解决方法
方法1:使用sudo运行pheweb
由于通过sudo全局安装PheWeb,部分环境下需要sudo权限才能正确加载模块,执行:
sudo pheweb --help
方法2:匹配Python版本
确认终端默认Python版本与PheWeb安装的Python版本一致:
- 查看PheWeb对应的Python版本:
输出示例:sudo python3 -m pip --versionpip 21.0.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6),确认版本为Python3.6。 - 检查终端当前Python版本:
python3 --version - 若版本不一致,直接用对应版本Python运行:
或者重新安装到当前默认Python版本:python3.6 -m pheweb --helpsudo python3.x -m pip install pheweb # 将x替换为当前终端Python的小版本号
方法3:卸载后用用户权限重新安装
避免sudo带来的路径权限冲突,改用用户本地安装:
- 卸载全局安装的PheWeb:
sudo python3 -m pip uninstall -y pheweb - 确保用户本地bin目录在PATH中:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc - 用用户权限安装:
pip3 install --user pheweb - 验证安装:
pheweb --help
方法4:修正脚本的shebang行
检查/usr/local/bin/pheweb脚本的Python路径是否正确:
- 查看脚本首行:
head -n 1 /usr/local/bin/pheweb - 若显示的Python路径与PheWeb安装路径不匹配(比如
#!/usr/bin/python3但PheWeb装在Python3.6环境),修改脚本:
将首行改为PheWeb对应的Python路径,比如sudo nano /usr/local/bin/pheweb#!/usr/bin/python3.6,保存后再执行pheweb --help。
内容的提问来源于stack exchange,提问作者syl
相关产品推荐
相关产品推荐

