安装web3.py时windows下python3 多版本共存

在windows系统上之前已经安装了一个python3.5.1版本,但是因为要安装web3.py,所以在python3.5.1环境上安装好web3后,在通过from web3 import Web3的时候,出现错误如下:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/pjs/bp_core_eth/venv/lib/python3.5/site-packages/web3/__init__.py", line 7, in <module>
    from eth_account import Account  # noqa: E402
  File "/home/pjs/bp_core_eth/venv/lib/python3.5/site-packages/eth_account/__init__.py", line 1, in <module>
    from eth_account.account import Account  # noqa: F401
  File "/home/pjs/bp_core_eth/venv/lib/python3.5/site-packages/eth_account/account.py", line 10, in <module>
    from eth_keyfile import (
  File "/home/pjs/bp_core_eth/venv/lib/python3.5/site-packages/eth_keyfile/__init__.py", line 7, in <module>
    from eth_keyfile.keyfile import (  # noqa: F401
  File "/home/pjs/bp_core_eth/venv/lib/python3.5/site-packages/eth_keyfile/keyfile.py", line 10, in <module>
    from eth_keys import keys
  File "/home/pjs/bp_core_eth/venv/lib/python3.5/site-packages/eth_keys/__init__.py", line 15, in <module>
    from .main import (  # noqa: F401
  File "/home/pjs/bp_core_eth/venv/lib/python3.5/site-packages/eth_keys/main.py", line 1, in <module>
    from typing import (Any, Union, Type)  # noqa: F401
ImportError: cannot import name 'Type'

该问题的原因是python3.5.1版本里面的typing.py没有Type这个名称。在3.5.2会有的。所以又下载了一个python3.7.0版本
进入python3.7.0版本安装的目录:D:\soft\python_3_7_0\install,此时如果使用pip install web3则会出现已安装过的提示,因为此时pip指向的是python3.5.1的位置。
那如何使用pip将web3安装到python3.7.0的软件里面呢,解决方法如下:

官方的解法是什么?
事实上这个问题几年以前Python社区就给出了官方解决方案,只不过国内一直没有注意到罢了。拿我的电脑为例,安装了python3.5.1和python3.7.0,
我们在安装Python的时候,Python的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面。这个启动器允许我们指定使用Python版本来运行代码。
如果切换想切换到python3.5.1,可以使用如下命令:
py -3.5
或者到python3.5.1的安装目录下(D:\soft\python_3_5),使用命令:
python

如果切换想切换到python3.7.0,可以使用如下命令:
py -3.7
或者到python3.7.0的安装目录下(D:\soft\python_3_7_0\install),使用命令:
python


如果此时我们要想在python3.7.0文件夹里面安装web3的话,使用如下命令:
py -3.7 -m pip install web3

如果你有一个Python文件叫 tab.py,那么你可以这样用Python3.5.1运行它:
py -3.5 tab.py

类似的,如果你想用Python3.7运行它,就这样
py -3.7 tab.py

使用pip
当Python3.5.1和Python3.7.0同时存在于windows上时,它们对应的pip都叫pip.exe,所以不能够直接使用 pip install 命令来安装软件包。而是要使用启动器py.exe来指定pip的版本。命令如下:
py -3.5 -m pip install XXXX
其中:-3.5 还是表示使用 Python3.5.1,-m pip 表示运行 pip 模块,也就是运行pip命令了。如果是为Python3.7.0安装软件,那么命令类似的变成:
py -3.7 -m pip install XXXX

转载于:https://my.oschina.net/u/435872/blog/1859840

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值