Web3.py - 即使安装了 web3,也无法导入'web3'



我今天已经通过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重命名为其他文件。

最新更新