Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

期待可以解决 mac 闪退的问题 #31

Closed
johnw2018 opened this issue Jun 9, 2020 · 10 comments
Closed

期待可以解决 mac 闪退的问题 #31

johnw2018 opened this issue Jun 9, 2020 · 10 comments

Comments

@johnw2018
Copy link

期待早日解决 mac 闪退问题,希望能够在 mac 上使用。
在 Windows 上使用起来很舒服。

@taojy123
Copy link
Owner

mac 上会闪退吗?能否再命令行里看下闪退前的报错信息?

@johnw2018
Copy link
Author

johnw2018 commented Jun 10, 2020 via email

@taojy123
Copy link
Owner

能贴出这些报错信息已经是很好的线索了,我找找原因。
看这个报错,应该是点击的录制按钮才会执行到 395 行的。
很奇怪,我在 mac 上尝试重现一下。方便的话告知一下你的 macOS 的版本吧

@johnw2018
Copy link
Author

johnw2018 commented Jun 10, 2020 via email

@taojy123
Copy link
Owner

好的,我有结果以后会跟进此 issue

@taojy123
Copy link
Owner

@johnw2018
这段时间我细研究了一下,在我的 Mac 上也重现了这个问题,具体表现就是打包后的 KeymouseGo.app 文件打开立即退出,Contents 内的 KeymouseGo,双击可看到界面,但无法正确工作。和你遇到的一致。

我又试了下打包一个普通的没有功能 ui,也有问题,所以推断是 pyinstaller 在 mac 打包 wxpython 缺陷。

目前来说,如果想在 Mac 上运行的话,看来只有 clone 源码运行这一种方式了。其实也不是太麻烦,具体流程如下:

首先安装 python3,然后

git clone https://github.com/taojy123/KeymouseGo
pip3 install -r requirements
python3 KeymouseGo.py

按上述步骤,应该可以正常看到界面和操作。但是使用的时候还会有点问题,比如

  1. 录制的带有鼠标拖拽的脚本,没法正常重放
  2. 有时候点了启动后,要点一下鼠标才能真正开始启动
  3. 运行时会抛 CFMachPortCreateRunLoopSource CFRunLoopGetCurrent 这类异常(但不影响程序继续往下执行)

上面这些问题应该是 pynput 对 Mac 的兼容问题导致,当初从 v1 升级到 v2 最重要的改变就是使用 pynput 代替 pywin32 实现鼠标键盘录制和模拟的功能,以此来兼容 Mac 和 Linux 操作系统。目前看下来这并不是一个好的选择,因为 pynput 并不能完美的兼容 Mac,还不如用回 pywin32 只支持 windows。

介于 #27 这个问题也涉及到 pynput 的 bug,所以更加坚定了我换回 pywin32 的想法。

我创建了这个分支 https://github.com/taojy123/KeymouseGo/tree/pynput 保留现在的 pynput 版本的代码,接下来 master 上会改回 pywin32,并且只支持 windows。

@johnw2018
Copy link
Author

johnw2018 commented Jun 24, 2020 via email

@taojy123
Copy link
Owner

谢谢,我会再关注着 pynput 这个项目,期待有一天能做到跨平台完美兼容~

@johnw2018
Copy link
Author

谢谢,我会再关注着 pynput 这个项目,期待有一天能做到跨平台完美兼容~

嗯嗯。不过不知道切换到 pyqt5 是不是可以解决这个问题呢

@taojy123
Copy link
Owner

嗯 回头试下用 pyqt 画一下界面,不过好像 pyqt 打包也是一堆坑

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants