Python中BeautifulSoup导入失败:ModuleNotFoundError问题求助
问题根源
你的python命令被别名指向了系统级的/usr/bin/python3,而你在虚拟环境中用pip安装的BeautifulSoup4存放在虚拟环境的site-packages目录下。当你用python index.py运行脚本时,实际调用的是系统Python,它无法找到虚拟环境里的包,因此抛出ModuleNotFoundError。
解决方案
1. 直接使用虚拟环境的Python运行脚本
激活虚拟环境后,用python3(而非python)执行脚本:
python3 index.py 399091
或者直接指定虚拟环境Python的完整路径:
./.venv/bin/python index.py 399091
2. 修正python别名,指向虚拟环境的Python
激活虚拟环境后,先取消当前shell的python别名:
unalias python
之后运行which python,应该会显示虚拟环境的路径(./.venv/bin/python),此时再用python index.py即可正常导入包。
如果你的shell配置文件(如~/.bashrc、~/.zshrc)里有全局的alias python=/usr/bin/python3,可以注释掉这一行,这样激活虚拟环境后,python会自动优先使用虚拟环境的版本。
3. 验证Python环境是否正确
执行以下命令确认当前使用的Python是虚拟环境版本:
python -c "import sys; print(sys.executable)"
输出应为/Users/eric/Documents/gitea/nscraper/.venv/bin/python(或类似虚拟环境路径),而非/usr/bin/python3。
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

