使用web3py运行脚本失败求助(Ubuntu16.04+Python3.6环境)
问题分析与解决方案
嘿,我来帮你拆解下这个报错的核心问题,主要有两个关键点在搞事情:
1. 脚本命名冲突(最关键的触发点)
你把自己的脚本命名成了token.py,但Python标准库本身就有一个同名的token模块。当Python执行到标准库tokenize.py里的from token import *时,它会优先导入你当前目录下的token.py,而非系统标准库的模块,这就引发了循环导入,进而导致后续一系列连锁错误,包括最后出现的pkg_resources异常。
解决办法:
立刻把你的脚本文件名改掉,比如改成my_token_script.py或者其他和标准库模块不重名的名字,彻底避免命名冲突。
2. pkg_resources模块损坏或版本问题
报错里的AttributeError: module 'pkg_resources' has no attribute 'get_distribution',说明你的setuptools(pkg_resources是setuptools的核心组件)可能损坏或者版本过低。
解决办法:
先尝试升级setuptools和pip:
pip3 install --upgrade setuptools pip
如果升级后问题依旧,就重新安装setuptools:
sudo apt-get remove python3-setuptools sudo apt-get install python3-setuptools pip3 install --upgrade setuptools
额外提醒
从报错路径能看到,你似乎直接把web3的源码放在了项目目录里(/home/ubuntu/Desktop/ico/web3.py/web3/__init__.py),这种方式很容易导致导入混乱。建议通过pip正式安装web3库:
pip3 install web3
按照上面的步骤一步步来,先改文件名,再修复setuptools,应该就能解决问题了!
内容的提问来源于stack exchange,提问作者小械屑械薪 袛芯胁谐懈泄
相关产品推荐
相关产品推荐

