从今天开始,Emacs里面可以运行任何你想要的程序 (Linux & Windows & Mac & BSD)

Macos M1 上安装 pyqtwebengine 有下面的问题,有谁知道怎么解决不?尝试 google,目前没有找到解决方法。

× Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      Querying qmake about your Qt installation...
      /opt/homebrew/bin/qmake -query
      These bindings will be built: QtWebEngineCore, QtWebEngine, QtWebEngineWidgets.
      Generating the QtWebEngineCore bindings...
      _in_process.py: /private/var/folders/lb/wfh8f4yj4xjdv77kzxt7cn0h0000gn/T/pip-install-n4vur8jp/pyqtwebengine_73e3c76028e447f3a180e8020a05b74b/sip/QtWebEngineCore/qwebengineclientcertificatestore.sip:34: ::QWebEngineClientCertificateStore::certificates() unsupported function return type - provide %MethodCode and a C++ signature
      
      [end of output]

macOS · emacs-eaf/emacs-application-framework Wiki · GitHub 这个有帮助吗?

试了下,还是有问题。

EAF的Cookie一直有各种奇奇怪怪的问题,我今天重新写了Cookie的逻辑,原来登录有问题bug都修复了,现在支持清空所有网站的Cookie和只清除当前网站Cookie两种操作,分别绑定到 M-Q 和 M-q 两个按键。

建议所有人都更新一下。

3 个赞

EAF现在针对所有Linux发行版都用pip来安装PyQt6,避免一些发行版软件仓库太旧没有PyQt6软件包。

但是PIP版本的PyQt6有一个Bug,当登录网站的时候会直接奔溃,类似下面的错误:

Thread 1 "python3" received signal SIGTRAP, Trace/breakpoint trap.
0x00007fffede3edc1 in ?? () from /usr/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
#0  0x00007fffede3edc1 in  () at /usr/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
#1  0x0000555555a9dc98 in  ()
#2  0x00000000000000f0 in  ()
#3  0x00007fffffffc6a0 in  ()
#4  0x000055555616c2d8 in  ()
#5  0x00007fffffffc5a0 in  ()
#6  0x00007fffedcb3801 in  () at /usr/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
#7  0x00007fffffffc550 in  ()
#8  0x00007fffffffc5f0 in  ()
#9  0x00000000000000e0 in  ()
#10 0x0ec4e89c28622e00 in  ()
#11 0x00007fff442e1750 in  ()
#12 0xffffffffffffff80 in  ()
#13 0x0000000000000000 in  ()

解决方法就是在Linux发行版中安装Qt6WebEngine软件包,再把 libQt6WebEngineCore.so.6 文件软链接到 PyQt6 的目录就可以修复崩溃的问题,下面是各Linux发行版的解决方案:

  1. Fedora, 安装 qt6-qtwebengine-libs 并运行 sudo ln -sf /usr/lib64/libQt6WebEngineCore.so.6 /usr/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
  2. Gentoo, 安装包括 libQt6WebEngineCore.so.6 的软件包, 软链接文件到 /usr/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
  3. Debian/Ubuntu, 安装 libqt6webenginecore6 并运行 sudo ln -sf /usr/lib/x86_64-linux-gnu/libQt6WebEngineCore.so.6 /usr/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
  4. Arch, 安装 qt6-webengine 并运行 sudo ln -sf /usr/lib/libQt6WebEngineCore.so.6 /usr/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
  5. OpenBSD, 安装包括 libQt6WebEngineCore.so.6 的软件包, 软链接文件到 /usr/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
  6. Suse, 安装 libQt6WebEngineCore6 并运行 sudo ln -sf /usr/lib/libQt6WebEngineCore.so.6 /usr/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
  7. Mac, 安装包括 libQt6WebEngineCore.so.6 的软件包, 软链接文件到 /usr/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
1 个赞

Use QWebEngineScript load dark_reader javascript code, improve perfor… · emacs-eaf/emacs-application-framework@83afed1 · GitHub 用QWebEngineScript 实现浏览器内部页面创建的时候注入 dark_mode_js, 替代上一版 “页面加载进度的时候都要执行一遍JS” 的实现,大大提高EAF浏览器页面的加载速度。

2 个赞

PyQt6,看来 NixOS 会有相当一段长的时间不能更新版本了,Qt6 打包太复杂了,不知道今年能不能合进去

我这儿加了软链接还是崩溃(报一样的错),唯一区别是 install-eaf.py 因为有 pip install --user 的逻辑,我的PyQt6是安装在 ~/.local/ 下的,目前很好复现,在browser里按 RET 就直接崩那种。

环境:archlinux

Thread 1 "python3" received signal SIGTRAP, Trace/breakpoint trap.
0x00007fffeea32d01 in ?? () from /home/xx/.local/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
#0  0x00007fffeea32d01 in  () at /home/xx/.local/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
#1  0x00005555566fa3e8 in  ()
#2  0x00000000000000f0 in  ()
#3  0x00007fffffffc080 in  ()
#4  0x00007fff4c03cf08 in  ()
#5  0x00007fffffffbf80 in  ()
#6  0x00007fffee8a88c2 in  () at /home/xx/.local/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6
#7  0x00007fffffffbf30 in  ()
#8  0x00007fffffffbfd0 in  ()
#9  0x00000000000000e0 in  ()
#10 0xb7adfa1f2555c800 in  ()
#11 0x0000555556692400 in  ()
#12 0xffffffffffffff80 in  ()
#13 0x0000000000000000 in  ()
lrwxrwxrwx 1 xx xx 33 Mar 31 10:57 /home/xx/.local/lib/python3.10/site-packages/PyQt6/Qt6/lib/libQt6WebEngineCore.so.6 -> /usr/lib/libQt6WebEngineCore.so.6
1 个赞

软链接以后,你重启EAF进程了吗?

我重启Emacs的,按回车键就能稳定复现

我也是arch呀,奇怪为啥你那里回出问题。

是的呢,我也知道大佬用的arch,我发帖前也一直在奇怪这事儿。我一会儿把 arch 全更新一遍试试。话说从原理上这和spacemacs什么的没关系吧,spacemacs的eaf layer是有问题需要手改,但一般都是API更新不及时的问题,不是这个维度和层面的问题。

哦对,还有,我原来Qt5那一坨还没删,和那个会有关系吗?

qt5应该没关系的

你执行一下 ldd /usr/lib/libQt6WebEngineCore.so 命令,看看是不是 /usr/lib/libQt6WebEngineCore.so 这个动态库链接的其他库是不是没有安装导致的?

不是的,我网页是能正常打开,鼠标键盘都好使,就是不能按回车键。

ldd /usr/.... | grep found 没有输出,没有 “not found" 什么的

emacs -Q 我也复现了,一模一样的问题


(load "/tmp/path.el") ;; a huge file with one line of (setq load-path '(.............))
(require 'eaf)
(require 'eaf-browser)

Process *eaf* 段错误 (core dumped)
Traceback (most recent call last):
  File "/home/was/.emacs.d/site-packages/emacs-application-framework/core/utils.py", line 50, in on_signal_received
    self._func(obj, *args, **kwargs)
  File "/home/was/.emacs.d/site-packages/emacs-application-framework/eaf.py", line 237, in update_views
    view = View(self.buffer_dict[buffer_id], view_info)
KeyError: '7c11-86ed-aefd-2ef6-f6a9-8aa5-94e5'

按照README的安装方式,我这里也有错误

@TerryTsao @Jerry 两位如果都是Arch的话, 先暂时安装 arch 的包来应急吧:

sudo pip3 uninstall pyqt6 pyqt6-sip  PyQt6-WebEngine
sudo pacman -S python-pyqt6 python-pyqt6-sip python-pyqt6-webengine

现在 install-eaf.py 还比较复杂,还没法做到一部分发行版用系统仓库的,一部分发行版用 pip 来安装(Ubuntu这种发行版还没有 PyQt6), 如果都用发行版的系统仓库安装 PyQt6 应该是没有问题的。

谢谢,但是报错仍然没变

怎么会呢?如果是Arch, 恢复到 Arch 仓库的 PyQt6 应该就没问题了呀。

我还是一样的问题,emacs -Q 复现,我用的清华的mirror, btw。目前版本如下: