VS Code运行Web3.py脚本提示web3/solcx/dotenv模块导入失败
问题现象
运行基于Web3.py的Solidity SimpleStorage合约部署脚本时,出现两类异常:
- VS Code编辑器提示导入解析失败:
Import "web3" could not be resolved、Import "solcx" could not be resolved、Import "dotenv" could not be resolved - 终端运行抛出Traceback报错,核心错误为
ModuleNotFoundError: No module named 'web3' - 终端报错截图:

对应报错导入片段:
from web3 import Web3 from solcx import compile_standard, install_solc from dotenv import load_dotenv
终端错误栈:
Traceback (most recent call last): File "c:\Users\ashvi\demos\web3_py_simple_storage\sam", line 3, in <module> from web3 import Web3 ModuleNotFoundError: No module named 'web3'
问题根因
异常由两个原因共同导致:
- 当前运行脚本的Python环境中未安装脚本依赖的三个第三方库
- VS Code选中的Python解释器与终端执行安装命令的环境不匹配,导致编辑器无法识别已安装的包、终端运行时找不到对应模块
解决方案
1. 对齐VS Code与终端的Python环境
- 打开VS Code后按
Ctrl+Shift+P调出命令面板,输入Python: Select Interpreter - 选择当前项目要用的Python解释器(推荐使用项目本地虚拟环境,避免全局包版本冲突)
- 打开VS Code内置终端,执行
python --version,确认输出的Python版本与你刚才选中的解释器版本一致,避免环境错位。如果设备同时安装了Python2和Python3,请后续使用pip3代替pip执行安装命令。
2. 安装缺失的依赖包
在已对齐的终端中依次执行以下安装命令:
# 安装Web3.py核心库 pip install web3 # 安装Solidity编译工具(对应导入的solcx模块) pip install py-solc-x # 安装.env配置文件读取工具(对应导入的dotenv模块) pip install python-dotenv
3. 验证安装结果
安装完成后执行pip list,确认已安装列表中存在以下三个条目:
web3py-solc-xpython-dotenv
回到编辑器等待3-5秒,导入解析失败的红色提示会自动消失,重新运行脚本即可。
额外注意事项
你提供的脚本存在Python缩进语法错误:Python要求代码块内的内容必须缩进4个空格,你贴出的代码中with open()、compile_standard()、json.dump()等代码块下的逻辑都没有缩进,修复依赖问题后如果报IndentationError,请参照以下格式修正缩进:
with open("./SimpleStorage.sol", "r") as file: # 块内代码必须缩进 simple_storage_file = file.read() with open("compiled_code.json", "w") as file: # 块内代码必须缩进 json.dump(compiled_sol, file)
另外脚本中硬编码了钱包私钥,正式使用时请把私钥存到.env文件中,通过os.getenv()读取,避免私钥泄露造成资产损失。
内容的提问来源于stack exchange,提问作者Ashvin Kumar
相关产品推荐
相关产品推荐

