安装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'python

该问题的缘由是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的软件里面呢,解决方法以下:web

官方的解法是什么?
事实上这个问题几年之前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),使用命令:
pythonwindows

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


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

若是你有一个Python文件叫 tab.py,那么你能够这样用Python3.5.1运行它:
py -3.5 tab.pypip

相似的,若是你想用Python3.7运行它,就这样
py -3.7 tab.pyio

使用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社区

相关文章
相关标签/搜索