WSL中VS Code的venv环境运行Python脚本提示找不到_ctypes模块
解决WSL中venv虚拟环境下
_ctypes模块缺失问题 问题分析
你遇到的ModuleNotFoundError: No module named '_ctypes',本质是虚拟环境里的Python缺少这个核心模块——因为venv是基于WSL系统中的Python构建的,如果系统Python在安装/编译时未正确引入libffi-dev依赖,虚拟环境也会继承这个缺陷。
解决方案
步骤1:排查系统级Python是否正常
先退出当前虚拟环境:
deactivate
然后运行测试命令:
python3 -c "import _ctypes"
- 如果没有报错,说明问题出在你的虚拟环境上,直接执行步骤2。
- 如果同样报错,说明系统Python本身缺失该模块,执行步骤3。
步骤2:重建虚拟环境
旧的venv可能在创建时就继承了系统Python的缺陷,直接重建即可:
- 删除旧虚拟环境:
rm -rf ./venv - 用系统Python重新创建venv:
python3 -m venv venv - 激活新环境:
source venv/bin/activate - 重新安装依赖:
pip install -r requirements.txt
之后再运行你的脚本(注意:正确的运行命令是python main.py,python -m main.py是错误用法,除非main.py是一个包的入口模块):
python main.py
步骤3:修复系统级Python
如果系统Python也缺失_ctypes,需要重新安装带完整依赖的Python:
- 安装所有Python编译依赖:
sudo apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - 重新安装系统Python:
sudo apt-get install --reinstall python3 python3-dev - 完成后回到步骤2重建虚拟环境即可。
内容的提问来源于stack exchange,提问作者Nishaal
相关产品推荐
相关产品推荐

