简体   繁体   English

在pyenv中安装PyQt5创建虚拟环境

[英]Installing PyQt5 in pyenv created virtual envirionment

I'm currently struggling to install a python package in a virtual environment.我目前正在努力在虚拟环境中安装 python package。 The set-up is the following: I have an M1 mac and with it, I have the system python installations located in /usr/bin/python (v 2.7.18) and usr/bin/python3 (v 3.8.9).设置如下:我有一个 M1 mac,我在/usr/bin/python (v 2.7.18) 和usr/bin/python3 (v 3.8.9) 中安装了系统 python。 Since I don't really like messing with these, I have installed pyenv and pyenv-virtualenv over brew .因为我不太喜欢弄乱这些,所以我在brew上安装了pyenvpyenv-virtualenv I installed Python 3.10.1 and created a virtual environment, let's call it test .我安装了 Python 3.10.1 并创建了一个虚拟环境,我们称之为test I also added the following lines to .zshrc我还在.zshrc中添加了以下行

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

alias brew='env PATH="${PATH//$(pyenv root)\/shims:/}" brew'
PATH=$(pyenv root)/shims:$PATH 

(Most of this was done by following the explanations on the github page of pyenv ). (大部分是按照 pyenv 的github 页面上的解释完成的)。

I'm now trying to install some packages in test .我现在正在尝试在test中安装一些包。 numpy, scipy , etc worked perfectly but when I try to install PyQt5 with pip I get an error. numpy, scipy等工作正常,但是当我尝试使用pip安装PyQt5时,出现错误。

❯ pip install PyQt5
Collecting PyQt5
  Using cached PyQt5-5.15.6.tar.gz (3.2 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... error
  ERROR: Command errored out with exit status 1:
   command: /Users/UserName/.pyenv/versions/3.10.1/envs/simpy/bin/python3.10 /Users/UserName/.pyenv/versions/3.10.1/envs/simpy/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py prepare_metadata_for_build_wheel /var/folders/yk/q1gxptj56gj5n3jt8l48xj580000gn/T/tmp2ofsepfy
       cwd: /private/var/folders/yk/q1gxptj56gj5n3jt8l48xj580000gn/T/pip-install-5rev2dd7/pyqt5_3892c9f35c2f41a186bcd36237d536d7
  Complete output (29 lines):
  Traceback (most recent call last):
    File "/Users/UserName/.pyenv/versions/3.10.1/envs/simpy/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 156, in prepare_metadata_for_build_wheel
      hook = backend.prepare_metadata_for_build_wheel
  AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/Users/UserName/.pyenv/versions/3.10.1/envs/simpy/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
      main()
    File "/Users/UserName/.pyenv/versions/3.10.1/envs/simpy/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/Users/UserName/.pyenv/versions/3.10.1/envs/simpy/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 160, in prepare_metadata_for_build_wheel
      whl_basename = backend.build_wheel(metadata_directory, config_settings)
    File "/private/var/folders/yk/q1gxptj56gj5n3jt8l48xj580000gn/T/pip-build-env-vyb7aqa6/overlay/lib/python3.10/site-packages/sipbuild/api.py", line 51, in build_wheel
      project = AbstractProject.bootstrap('pep517')
    File "/private/var/folders/yk/q1gxptj56gj5n3jt8l48xj580000gn/T/pip-build-env-vyb7aqa6/overlay/lib/python3.10/site-packages/sipbuild/abstract_project.py", line 83, in bootstrap
      project.setup(pyproject, tool, tool_description)
    File "/private/var/folders/yk/q1gxptj56gj5n3jt8l48xj580000gn/T/pip-build-env-vyb7aqa6/overlay/lib/python3.10/site-packages/sipbuild/project.py", line 587, in setup
      self.apply_user_defaults(tool)
    File "/private/var/folders/yk/q1gxptj56gj5n3jt8l48xj580000gn/T/pip-install-5rev2dd7/pyqt5_3892c9f35c2f41a186bcd36237d536d7/project.py", line 63, in apply_user_defaults
      super().apply_user_defaults(tool)
    File "/private/var/folders/yk/q1gxptj56gj5n3jt8l48xj580000gn/T/pip-build-env-vyb7aqa6/overlay/lib/python3.10/site-packages/pyqtbuild/project.py", line 70, in apply_user_defaults
      super().apply_user_defaults(tool)
    File "/private/var/folders/yk/q1gxptj56gj5n3jt8l48xj580000gn/T/pip-build-env-vyb7aqa6/overlay/lib/python3.10/site-packages/sipbuild/project.py", line 234, in apply_user_defaults
      self.builder.apply_user_defaults(tool)
    File "/private/var/folders/yk/q1gxptj56gj5n3jt8l48xj580000gn/T/pip-build-env-vyb7aqa6/overlay/lib/python3.10/site-packages/pyqtbuild/builder.py", line 67, in apply_user_defaults
      raise PyProjectOptionException('qmake',
  sipbuild.pyproject.PyProjectOptionException
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/3b/27/fd81188a35f37be9b3b4c2db1654d9439d1418823916fe702ac3658c9c41/PyQt5-5.15.6.tar.gz#sha256=80343bcab95ffba619f2ed2467fd828ffeb0a251ad7225be5fc06dcc333af452 (from https://pypi.org/simple/pyqt5/) (requires-python:>=3.6). Command errored out with exit status 1: /Users/UserName/.pyenv/versions/3.10.1/envs/simpy/bin/python3.10 /Users/UserName/.pyenv/versions/3.10.1/envs/simpy/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py prepare_metadata_for_build_wheel /var/folders/yk/q1gxptj56gj5n3jt8l48xj580000gn/T/tmp2ofsepfy Check the logs for full command output.

What exactly is going on here?这里到底发生了什么? Is this related to the m1 chip or the set-up of the virtual environment?这与m1芯片或虚拟环境的设置有关吗? How can I fix this?我怎样才能解决这个问题?


On the suggestion of @pedro_bb7 I downgraded Python to 3.9.9 (since PyQt5 is not yet ready for Python 3.10.0) and also tried installing an older versions ( 5.14.1/2/, 5.15.0/1/2/3/4/5/6 ) of PyQt5 over the command根据@pedro_bb7 的建议,我将 Python 降级到 3.9.9(因为PyQt5还没有为 Python 3.10.0 做好准备)并且还尝试安装旧版本( 5.14.1/2/, 5.15.0/1/2/3/4/5/6 ) of PyQt5通过命令

❯ pip install PyQt5==5.14.0
Collecting PyQt5==5.14.0
  Using cached PyQt5-5.14.0.tar.gz (3.2 MB)
ERROR: PyQt5==5.14.0 from https://files.pythonhosted.org/packages/7c/5b/e760ec4f868cb77cee45b4554bf15d3fe6972176e89c4e3faac941213694/PyQt5-5.14.0.tar.gz#sha256=0145a6b7de15756366decb736c349a0cb510d706c83fda5b8cd9e0557bc1da72 has a pyproject.toml file that does not comply with PEP 518: 'build-system.requires' contains an invalid requirement: 'sip >=5.0.1 <6'

As you can see, still no luck...如您所见,仍然没有运气......

Probably you need to upgrade pip to the latest, as suggested:可能您需要按照建议将 pip 升级到最新版本:

pip install --upgrade pip

https://stackoverflow.com/a/67606704/11381650 https://stackoverflow.com/a/67606704/11381650

EDIT: it's not yet supported for Python 3.10 as you can see:编辑: Python 3.10尚不支持,如您所见:

https://github.com/altendky/pyqt-tools/issues/98 https://github.com/altendky/pyqt-tools/issues/98

and try different versions of PyQt , could you try 5.14.0 for Python 3.9?并尝试不同版本的PyQt ,您可以为 Python 3.9 尝试5.14.0吗?

https://stackoverflow.com/a/59797479/11381650 https://stackoverflow.com/a/59797479/11381650

Like LemurPwned said in How can I run pyqt5 on my Mac with M1chip (ppc64el architecture)?正如 LemurPwned 在How can I run pyqt5 on my Mac with M1chip (ppc64el architecture) 中所说的那样?

pyqt6 is now easily installable via pip on M1/M2 Macs pyqt6 现在可以通过 pip 在 M1/M2 Mac 上轻松安装

You can install that via $pip install pyqt6您可以通过 $pip install pyqt6 安装它

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM