已通过conda/pip安装Shapely,导入时仍提示No module named 'shapely'错误
可能的问题原因
shebang路径配置错误
你当前填写的shebang#!/opt/miniconda3/bin/envs/Nerkan_env_new3/python不符合conda环境解释器的标准路径结构,正确路径应为#!/opt/miniconda3/envs/Nerkan_env_new3/bin/python。错误的路径会导致脚本实际调用的并非你预期的Nerkan_env_new3环境解释器,自然找不到该环境下安装的shapely包。脚本执行方式未触发shebang生效
如果你通过python TSP.py的方式执行脚本,系统会优先调用当前终端激活环境的python解释器,忽略脚本头部的shebang配置。可通过以下操作验证:- 执行
which python查看当前终端默认的python路径 - 在脚本头部添加代码
import sys; print(sys.executable),运行脚本后输出的就是实际调用的解释器路径,和shapely安装路径对应的解释器对比即可确认是否匹配
- 执行
Python包搜索路径或权限异常
如果确认解释器路径正确,可在脚本头部添加import sys; print(sys.path),检查输出的路径列表中是否包含/opt/miniconda3/envs/Nerkan_env_new3/lib/python3.7/site-packages:- 若未包含,大概率是
PYTHONPATH环境变量被篡改,覆盖了默认的包搜索路径 - 若已包含,可执行
ls -l /opt/miniconda3/envs/Nerkan_env_new3/lib/python3.7/site-packages/shapely,确认运行脚本的用户对该目录有读取权限。如果安装shapely时使用了root或其他用户账号,可能出现当前用户无权限读取包文件的情况,同样会抛出ModuleNotFoundError
- 若未包含,大概率是
内容的提问来源于stack exchange,提问作者Nourless
相关产品推荐
相关产品推荐

