我今天已经通过pip install web3
安装了web3,从那以后,我一直试图将import web3
加载到当前工作文件中,但没有成功。
无论我做什么,我都会得到";无法导入"web3"。
Pip列表找到web3(web3 5.19.0(。
文件中的代码:
import web3
from web3 import Web3, HTTPProvider, TestRPCProvider
infura_url = 'URL'
web3 = Web3(Web3.HTTPProvider(infura_url))
isConnected = web3.isConnected()
blocknumber = web3.eth.blockNumber
更新
我知道怎么了,pip在C:UsersUSERAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packages
中安装软件包,而python正在C:UsersUSERAppDataRoamingPythonPython39
中寻找软件包
您不需要第一次导入,它会影响您的代码,因为您的变量名为web3,只需删除
导入web3
并且它应该工作
pip列表显示的是web3库,在发现这是vs代码python编辑器的问题后。运行以下代码,而不考虑编辑器错误消息如果成功运行
from web3 import Web3
print(Web3)
它将给出输出
<class 'web3.main.Web3'>
这意味着它有一些vs代码python编辑器问题,但你可以忽略警告,使用web3进行编码
你不需要第一次导入,它会影响你的代码,因为你是一个名为web3的变量,只需删除
import web3
对于webSocket使用它:
Web3(Web3.WebsocketProvider(infura_url))
对于http使用它:
Web3(Web3.HTTPProvider(infura_url))
这是Visual Studio代码的一个问题。我试着用PyCharm打开代码,它运行正常。
您必须安装visual c++构建工具//使用c++进行桌面开发//然后在控制台中安装web3,它不会给您错误
https://visualstudio.microsoft.com/visual-cpp-build-tools/
这听起来像是本地版本的问题。我会尝试退出应用程序,然后再试一次。
一些人认为,尽管有错误,它仍然可以工作。但就我而言,事实并非如此。因此,我的解决方案是使用pip3 install web3
命令在虚拟环境之外的本地系统上全局安装web3。我在Ubuntu 20.04 LTS上使用python3。
删除第一行代码。也删除导入HTTPProvider或使用以下的代码
web3 = Web3(HTTPProvider(infura_url))
而不是
web3 = Web3(Web3.HTTPProvider(infura_url))
您应该设置一个虚拟环境来避免您刚才描述的问题类型(软件包安装在机器上的不同位置(
查看此以了解更多信息:https://docs.python.org/3/library/venv.html
这是我的快速入门
打开一个终端,导航到项目的根目录,并设置一个虚拟环境
python3 -m venv /path/to/new/virtual/environment
要激活您的虚拟环境,请运行以下命令
source /path/to/new/virtual/environment/bin/activate
现在运行pip install web3
既然你的虚拟环境已经激活,并且你已经安装了python3,你应该能够运行你的文件
python name_of_file.py
我也有同样的情况。解决方案是将python文件从Web3.py重命名为其他文件。