Python Can';t在Raspberry pi上安装PyQt5

Python Can';t在Raspberry pi上安装PyQt5,python,pip,pyqt5,Python,Pip,Pyqt5,我似乎无法使用以下方法在raspberry pi上安装PyQt5: sudo python3-m pip安装--可信主机pypi.python.org--可信主机files.pythonhosted.org--可信主机pypi.org pyqt5 我只是想问一下,因为我以前从未见过这个错误,我用完全相同的命令在Ubuntu 18.04上以相同的方式安装了PyQt5,并且成功了 我用上面的命令安装了无数其他软件包,所有软件包都成功了,但是PyQt5似乎没有安装,我尝试手动下载.tar.gz文件并手

我似乎无法使用以下方法在raspberry pi上安装
PyQt5
sudo python3-m pip安装--可信主机pypi.python.org--可信主机files.pythonhosted.org--可信主机pypi.org pyqt5

我只是想问一下,因为我以前从未见过这个错误,我用完全相同的命令在Ubuntu 18.04上以相同的方式安装了
PyQt5
,并且成功了

我用上面的命令安装了无数其他软件包,所有软件包都成功了,但是
PyQt5
似乎没有安装,我尝试手动下载
.tar.gz
文件并手动安装,但它一直抛出错误

终端错误:

pi@raspberrypi:~/Desktop $ sudo python3 -m pip install --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org pyqt5
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting pyqt5
/usr/share/python-wheels/urllib3-1.24.1-py2.py3-none-any.whl/urllib3/connectionpool.py:849: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])"))': /simple/pyqt5/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])"))': /simple/pyqt5/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])"))': /simple/pyqt5/
  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])"))': /simple/pyqt5/
  Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])"))': /simple/pyqt5/
/usr/share/python-wheels/urllib3-1.24.1-py2.py3-none-any.whl/urllib3/connectionpool.py:849: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  Downloading https://files.pythonhosted.org/packages/7c/5b/e760ec4f868cb77cee45b4554bf15d3fe6972176e89c4e3faac941213694/PyQt5-5.14.0.tar.gz (3.2MB)
    100% |████████████████████████████████| 3.2MB 818kB/s 
  Installing build dependencies ... error
  Complete output from command /usr/bin/python3 -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-rrmt_pc2 --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --extra-index-url https://www.piwheels.org/simple --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org -- "sip >=5.0.1 <6" "PyQt-builder >=1.1.0, <2":
  Invalid requirement: 'sip >=5.0.1 <6'
  Traceback (most recent call last):
    File "/usr/share/python-wheels/packaging-19.0-py2.py3-none-any.whl/packaging/requirements.py", line 93, in __init__
      req = REQUIREMENT.parseString(requirement_string)
    File "/usr/share/python-wheels/pyparsing-2.2.0-py2.py3-none-any.whl/pyparsing.py", line 1632, in parseString
      raise exc
    File "/usr/share/python-wheels/pyparsing-2.2.0-py2.py3-none-any.whl/pyparsing.py", line 1622, in parseString
      loc, tokens = self._parse( instring, 0 )
    File "/usr/share/python-wheels/pyparsing-2.2.0-py2.py3-none-any.whl/pyparsing.py", line 1379, in _parseNoCache
      loc,tokens = self.parseImpl( instring, preloc, doActions )
    File "/usr/share/python-wheels/pyparsing-2.2.0-py2.py3-none-any.whl/pyparsing.py", line 3395, in parseImpl
      loc, exprtokens = e._parse( instring, loc, doActions )
    File "/usr/share/python-wheels/pyparsing-2.2.0-py2.py3-none-any.whl/pyparsing.py", line 1383, in _parseNoCache
      loc,tokens = self.parseImpl( instring, preloc, doActions )
    File "/usr/share/python-wheels/pyparsing-2.2.0-py2.py3-none-any.whl/pyparsing.py", line 3183, in parseImpl
      raise ParseException(instring, loc, self.errmsg, self)
  pyparsing.ParseException: Expected stringEnd (at char 12), (line:1, col:13)

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/pip/_internal/req/constructors.py", line 253, in install_req_from_line
      req = Requirement(req)
    File "/usr/share/python-wheels/packaging-19.0-py2.py3-none-any.whl/packaging/requirements.py", line 97, in __init__
      requirement_string[e.loc : e.loc + 8], e.msg
  pip._vendor.packaging.requirements.InvalidRequirement: Parse error at "'<6'": Expected stringEnd


  ----------------------------------------
Command "/usr/bin/python3 -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-rrmt_pc2 --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --extra-index-url https://www.piwheels.org/simple --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org -- "sip >=5.0.1 <6" "PyQt-builder >=1.1.0, <2"" failed with error code 1 in None


我也犯了同样的错误。在我的例子中,我试图安装一个依赖于PyQt5的程序。最后,我可以通过以下方式解决问题:

  • 创建并激活虚拟环境:

    python3-m-venv-venv
    源venv/bin/激活

  • 重新安装放置在虚拟环境中的默认pip。在我的例子中,将pip从v9.0.1升级到pip-20.0.2:

    pip安装--升级pip

  • (重新)安装您的软件

    pip安装


  • 我也犯了同样的错误。在我的例子中,我试图安装一个依赖于PyQt5的程序。最后,我可以通过以下方式解决问题:

  • 创建并激活虚拟环境:

    python3-m-venv-venv
    源venv/bin/激活

  • 重新安装放置在虚拟环境中的默认pip。在我的例子中,将pip从v9.0.1升级到pip-20.0.2:

    pip安装--升级pip

  • (重新)安装您的软件

    pip安装


  • 在搜索相同的问题后,我发现了以下有用的帖子:

    他们帮了我很多忙,下面的答案只是上面原始帖子的精炼版本

    下面的解决方案使用Raspbian Buster和python虚拟环境在我的Raspberry Pi 3A+上运行:

    注意:在python中导入PyQt5时,多个SIP安装可能会导致错误。如果下面的解决方案不起作用,请在SD卡上刻录映像备份,然后尝试其他方法。不要试图在非工作映像上安装其他内容

  • 进行SD卡映像备份
  • 注意:并非所有SIP都与所有PyQt5兼容。阅读安装文档以检查兼容性

  • 下载所需的PyQt5源代码,例如:PyQt5_gpl-5.12.3.tar.gz

  • 从下载所需的SIP源代码,例如:SIP-4.19.14.tar.gz

  • 将档案放在方便的目录中,例如:/home/pi

  • 从终端转到归档文件所在的目录:

    cd/home/pi

  • 使用以下方法解压缩存档:

    tar-xzvf PyQt5_gpl-5.12.3.tar.gz

    tar-xzvf sip-4.19.14.tar.gz

  • 转到虚拟环境,在我的例子中是“cv”:

    workon cv

  • 安装QT内核:

    sudo apt get install qt5 default

  • 配置SIP:

    cd/home/pi/sip-4.19.14

    python configure.py——sip模块PyQt5.sip

  • 构建和安装SIP make:

    make

    sudo make安装

  • 配置PyQt5:

    cd/home/pi/PyQt5_gpl-5.12.3

    python configure.py

  • 构建并安装PyQt5 make:

    make

    sudo make安装


  • 注意:在Raspberry Pi 3 A+中构建PyQt5 make需要2个小时,安装需要15分钟

    在搜索相同的问题后,我遇到了以下有用的帖子:

    他们帮了我很多忙,下面的答案只是上面原始帖子的精炼版本

    下面的解决方案使用Raspbian Buster和python虚拟环境在我的Raspberry Pi 3A+上运行:

    注意:在python中导入PyQt5时,多个SIP安装可能会导致错误。如果下面的解决方案不起作用,请在SD卡上刻录映像备份,然后尝试其他方法。不要试图在非工作映像上安装其他内容

  • 进行SD卡映像备份
  • 注意:并非所有SIP都与所有PyQt5兼容。阅读安装文档以检查兼容性

  • 下载所需的PyQt5源代码,例如:PyQt5_gpl-5.12.3.tar.gz

  • 从下载所需的SIP源代码,例如:SIP-4.19.14.tar.gz

  • 将档案放在方便的目录中,例如:/home/pi

  • 从终端转到归档文件所在的目录:

    cd/home/pi

  • 使用以下方法解压缩存档:

    tar-xzvf PyQt5_gpl-5.12.3.tar.gz

    tar-xzvf sip-4.19.14.tar.gz

  • 转到虚拟环境,在我的例子中是“cv”:

    workon cv

  • 安装QT内核:

    sudo apt get install qt5 default

  • 配置SIP:

    cd/home/pi/sip-4.19.14

    python configure.py——sip模块PyQt5.sip

  • 构建和安装SIP make:

    make

    sudo make安装

  • 配置PyQt5:

    cd/home/pi/PyQt5_gpl-5.12.3

    python configure.py

  • 构建并安装PyQt5 make:

    make

    sudo make安装


  • 注意:在Raspberry Pi 3 A+中构建PyQt5 make需要2小时,安装需要15分钟

    尝试在
    virtualenv上运行它
    它仍然不起作用。尝试在线安装并升级您的pip和Pythonoli
    pi@raspberrypi:~/Downloads $ uname -a
    Linux raspberrypi 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l GNU/Linux