我重新在 windows 装了一下 eaf,确实不成功,上一次安装的时候还是 pyqt5…
这里记录一下安装过程,等以后学了 pyqt 之后看看能不能找出问题来。
环境:
- Windows 10
- emacs 28.1 x86_64 on windows
- python 3.10
- npm 8.15.0
- node v16.17.0
1.检查环境
在 cmd 中输入 python --version
来查看 python 的版本,当然 eaf 没有对 py 版本进行明确的要求,是 py3 即可。
在 cmd 中输入 pip
来观察是否能够使用 pip。
在 cmd 中输入 git
观察是否已安装了 git。
在 cmd 中输入 node
和 npm
观察是否安装了它们。
这样就应该差不多了。
2.安装依赖
参考 eaf wiki 添上依赖项:
pip install epc
pip install wmctrl
pip install pygetwindow
因为不使用 mac 系统,mac-app-frontmost
我们不需要。
3.安装 eaf
根据 readme 内容,我们可以使用以下命令下载 eaf:
git clone --depth=1 -b master https://github.com/emacs-eaf/emacs-application-framework.git ~/.emacs.d/site-lisp/emacs-application-framework/
当然在 windows 上没有 ~
目录,所以你在你的配置目录的某个子目录下执行即可,假设我的配置目录是 C:\Users\Y\yy-emacs
,那我就把 eaf 放在 C:\Users\Y\yy-emacs\local\eaf
里面。
# 然后在你想要放置 eaf 的当前目录下执行以下命令
git clone --depth=1 -b master https://github.com/emacs-eaf/emacs-application-framework.git
这样就得到了 eaf 包。
安装过程非常简单,直接运行 install-eaf.py
即可,安装时注意网络是否可用
在 eaf 目录执行以下命令:
python install-eaf.py
看到下面的结果说明安装成功了:
剩下的一些应用按自己需求安装
核心和应用安装完毕后大概是这个样子:
接下来的工作是给 emacs 添加 load-path 和 require,直接把刚才结果中得到的文本复制到配置文件中即可,记得把目录改成自己机器上的:
(add-to-list 'load-path "path/to/emacs-application-framework/")
(require 'eaf)
(require 'eaf-browser)
4.安装完成后的测试
首先,重启 emacs,然后 M-x
,观察能否找到 eaf:
没问题,接下来试一试浏览器:
好,非常成功地打不开,让我们看看 *eaf*
中的报错信息:
很显然我们没有安装 darkreader
,这里需要安装一下,首先来到 browser app 所在目录,即 path/to/eaf/app/browser
,然后使用 npm
安装 darkreader:
npm install darkreader
接着再次运行 eaf-open-browser 并观察结果:
又出错了,不过这一次我已经把 eaf-enable-debug
设为了 t
,让我们看看报错信息:
线程返回非零说明出现了问题,在我的环境中是能够正常使用 eaf-open-demo
的,那就应该是 eaf-browser
出了问题。下面我们做一些实验看看能不能定位错误:
当我们输入一个不能访问的网址时,eaf 是能够正确显示的,比如:
再拿一个纯文本网站试试:
5.使用 pyqt5 的 eaf 分支
重新下载 eaf,不过这次使用 qt5-legacy 分支:
git clone --depth=1 https://github.com/emacs-eaf/emacs-application-framework -b qt5-legacy
其他的操作同上面,然后应该就可以用了…然而并不。
6.总结
最后会出现如图所示的报错信息:
之后有时间了去学一下 eaf 和 pyqt,看能不能把原因找出来。
当然最简单还是 脱离 Windows 苦海