Python2.7环境配置异常:从bottle模块找不到到site模块导入失败求助
解决Python2.7环境变量配置引发的模块导入问题
问题梳理
你遇到的是典型的环境变量配置错误导致的连锁问题:
- 最初安装
bottle后导入失败,本质是Python的模块搜索路径(sys.path)被干扰,没能自动识别site-packages目录 - 手动修改
sys.path能临时修复,但重启后失效 - 错误配置环境变量后,直接导致Python找不到核心的
site模块——这个模块负责自动加载默认路径(比如site-packages),它缺失的话Python根本无法正常启动
错误配置分析
你的环境变量里有几个关键问题:
- Path中添加
C:\Python27\Lib\site-packages:完全没必要!Python的模块搜索路径和系统Path是两个独立的概念,加在这里反而会打乱默认路径优先级 - PYTHONPATH配置冗余:
PYTHONPATH = C:\Python27\Lib;%PYTHONHOME%里的%PYTHONHOME%会展开成C:\Python27,相当于把Python根目录加到模块路径里,直接干扰了site模块的查找逻辑
一步步修复方案
1. 修正Windows系统环境变量
打开「系统属性→高级→环境变量」,按以下规则调整:
- Path变量:移除
C:\Python27\Lib\site-packages,只保留C:\Python27和C:\Python27\Scripts(这两个是让系统能找到python.exe和pip.exe) - PYTHONHOME:保持
C:\Python27不变,这个配置是对的 - PYTHONPATH:
- 如果没有自定义模块需要额外加载,直接删除这个变量(Python默认会自动识别
Lib和Lib\site-packages) - 如果必须设置,只填写你的自定义模块路径即可,比如
C:\MyCustomModules
- 如果没有自定义模块需要额外加载,直接删除这个变量(Python默认会自动识别
2. 彻底重置终端环境
关闭所有Babun终端、命令提示符窗口,甚至重启电脑——环境变量的修改需要重新加载终端才能生效,残留的缓存会导致问题反复。
3. 验证Python路径是否正常
打开命令提示符(cmd),输入python进入交互模式,执行:
import sys print(sys.path)
正常情况下,输出里必须包含:
C:\Python27\LibC:\Python27\Lib\site-packagesC:\Python27
如果这些路径都在,说明基础配置没问题了。
4. 确保bottle安装给Python2.7
如果系统同时装了Python3,pip可能默认指向Python3版本。用以下命令重新安装bottle,确保是给Python2.7用的:
pip2.7 install bottle --upgrade
5. 修复Babun终端的环境变量
Babun基于Cygwin,路径格式和Windows不同,容易和系统环境变量冲突。打开Babun的配置文件~/.bashrc(用nano ~/.bashrc编辑),添加以下内容:
# 配置Python2.7的Cygwin格式路径 export PYTHONHOME=/cygdrive/c/Python27 export PATH=/cygdrive/c/Python27:/cygdrive/c/Python27/Scripts:$PATH # 清空可能干扰的PYTHONPATH unset PYTHONPATH
保存后执行source ~/.bashrc让配置生效,再测试python是否能正常启动、import bottle是否成功。
最终验证
完成所有步骤后,做两个测试:
- 在cmd里运行
python C:\Python27\hello_bottle.py,确认无ImportError - 在Babun终端里运行同样的命令,验证功能正常
内容的提问来源于stack exchange,提问作者Jesse Potter
相关产品推荐
相关产品推荐

