换个靠谱点的包管理器,比如 nix。
brew 主要都是些 Xcode 用户在用,社区基本没有跨平台开发者。
哈哈哈,在Mac这么封闭的平台上居然可以要我玩 Nix , 哈哈哈哈,好欢乐啊。
nix 你玩过吗?确认可以解决我上面的问题吗?
nix 提供的版本还是比较稳定的,而且最不怕的就是版本冲突导致的坑。
我之前试过,唯一的问题是默认的软件源比较慢,不过能挂代理就行。
其实作为 Python 开发者,为什么不试试 Portage 呢(滑稽)
Nix 这种软连接发行版我深入研究过。
我只是感觉你在把我往另外一个火坑里面推。哈哈哈
我还是在 brew 把 python3 和 pip3 折腾好了,估计就快成功了。 Nix和其他的坑不想趟了。
我在从源码编译Python3, Mac上的Python2.x居然不支持 SSL , 会导致 pip install 的时候各种报错。
Python的话 用anaconda比较好
archlinux在pyenv创建的python下安装pyqt5相关的东西也挺要命的。
真可怕,elisp(py) machine 启动!
谢谢大家, Python3 和 PyQt5 都折腾好了.
这两天研究一下Mac上怎么运行 DBus 和 Xlib
还没试过,有时间学学pyqt5,留名支持大神!!!
Mac 上的DBus还在折腾中.
但是看了一下 Mac 下, elisp " (frame-parameter nil 'window-id) " 居然返回的是 1 , 这个一点都不像 xwindow xid, 深深的不安.
折腾了几天, 进展到 PyQt5 已经可以在Mac工作了.
我做了几个实验,得出了几个结论:
DBus 很难折腾好, 我看了网上的教程,应该最后可能还是可以折腾好,实在不行可以用跨平台的IPC 来替代,主要的死穴在后面两个
X11 reparent 没法在 MacOS 上工作, 我也没法发现 Cocoa 上有类似的技术
Qt 的 QGraphicsView/QGraphicsScene 没法正常工作,特别是视频播放器 QGraphicsVideoItem完全没法加载
基于以上几个原因我会放弃继续折腾Mac 上的EAF 了, 如果那位 Mac 大神能够知道怎么解决上面三个问题, 麻烦告知一下解决方案.
我继续在 Linux 上开发EAF 了.
所以只能在Linux 平台玩 EAF 了
话说reparent是怎么实现的呢?是用Elisp吗?还是C?
x11 的底层协议支持的, 给一个 xid 和 parent xid, xlib 可以让任意程序的窗口粘贴到 parent 窗口上,即使 parent 窗口是另外一个风马牛不及的应用程序提供的.
xreparent 和 xcomposite 是构成 linux 所有窗口管理器图层合并的基础.
举一个简单的例子, mpv命令行启动的时候,只绘制在一个光秃秃的 xwindow 上, 但是在 mpv 进程启动的时候,给他一个 parent xid , mpv 就可以粘贴到应用程序制定的控件窗口上了. vlc, gsteamer 都是类似的.
EAF 里面通过 python-xlib 这个库向 XServer 发送 xreparent message.
话说有一个 xelb 的库, 可以通过 elisp 和 xserver 进行通讯.
不管什么编程语言, 都是再向 xserver 发送消息,所有的绘制都在服务端, 并通过显卡进行图层硬件混合的.
之前提过,在 Cocoa 实现 XWidget 。不知道是否有参考价值