taojy123 / KeymouseGo

类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input
http://taojy123.github.io/KeymouseGo
GNU General Public License v2.0
7.15k stars 1.04k forks source link

mac M1安装KeymouseGo_v5_1_1 mac_app启动失败 #251

Open Promisey opened 1 year ago

Promisey commented 1 year ago
  1. 安装 Python3
  2. pip3 install -r requirements-universal.txt
  3. pip3 install pyinstaller
  4. pyinstaller -F -w --add-data "./assets:assets" KeymouseGo.py

Macbook M1 按如上步骤后, 尝试打开dist文件夹下的KeymouseGo.app,在程序坞跳动几下就没了。 尝试打开build文件夹下的KeymouseGo.pkg,报错提示:“未能完成操作。(com.apple.installer.pagecontroller错误-1。),不能打开’KeymouseGo.pkg‘。”

KevinJun2017 commented 1 year ago

same problem

ZihouWong commented 1 year ago

+1

Monomux commented 12 months ago

运行dist文件夹下的程序,看看控制台的日志输出是怎样的?

Promisey commented 12 months ago

执行以下程序: image 终端提示如下: image

Monomux commented 12 months ago

通过pip3 list确定一下有没有装上PySide6?这里的python环境没识别到这个模块。

Promisey commented 12 months ago

https://stackoverflow.com/questions/71903771/modulenotfounderror-no-module-named-pyside6-in-python-using-visual-studio-cod 参照过这个帖子重新安装,包括再使用命令pip3 install pyside6重新安装,显示已安装,如图: image

但重装完,还是一样的报错。

Monomux commented 12 months ago

抱歉,手头上并没有Mac电脑,我得装个虚拟机测试一下,你也可以尝试在卸载pyside相关包后用conda install pyside6试试?

Promisey commented 12 months ago

感谢尝试去复现解决🙏

conda install pyside6一直卡住, image

我从https://anaconda.org/conda-forge/pyside6 下载.conda文件,然后从本地安装后 image

再运行keymousego,也还是一样的提示。

Monomux commented 12 months ago

问题应该是依赖被装到了全局pip环境中,我在conda的虚拟环境下这样操作也遇到了相同的问题,退出虚拟环境后发现用pip装的库都在全局环境内。

经过测试,使用以下方法可以正常打包运行:

conda create -n py310 python=3.10  # 建议使用python3.10及以下版本,测试时使用python3.11打包遇到了其它的问题
conda activate py310
pip3 install -r requirements-universal.txt
pip3 install pyinstaller
pyinstaller -F -w --add-data "./assets:assets" KeymouseGo.py

运行dist/keymousego可能会报permission denied错误,需要给予以下文件夹读写权限

sudo chmod -R 770 <executable-work-directory>
sudo chmod -R 770 ~/.qt_material

如果遇到无法录制操作等问题,需要将打包的程序添加到隐私和安全/辅助功能中。

Promisey commented 12 months ago

奇怪🤔按一样的命令重新创建conda环境,重新来过,还是提示缺pyside6 image

Monomux commented 11 months ago

复现不了这个问题😟,我使用的是通过bash安装的miniconda3-latest.

也许打包时手动指定依赖路径可以解决?

pyinstaller -F -w --add-data "./assets:assets" KeymouseGo.py -p <conda-directory>/envs/<env-name>/lib/python<version>/site-packages

或者手动指定引用

pyinstaller -F -w --add-data "./assets:assets" KeymouseGo.py --hidden-import PySide6
Promisey commented 11 months ago

image 两种方式都尝试过,运行完再运行dist/KeymouseGo 还是报错,两种方式都是截图这样的报错提示。 不过与之前的报错不一样了,改提示ModuleNotFoundError: No module named 'Recorder'

Promisey commented 11 months ago

https://stackoverflow.com/questions/73268630/error-could-not-build-wheels-for-pyaudio-which-is-required-to-install-pyprojec

参照这个帖子解决安装pyaudio的问题,然后才安装好Recorder,但是再尝试执行

pyinstaller -F -w --add-data "./assets:assets" KeymouseGo.py -p <conda-directory>/envs/<env-name>/lib/python<version>/site-packages

pyinstaller -F -w --add-data "./assets:assets" KeymouseGo.py --hidden-import Recorder

重新打包,再运行dist/KeymouseGo,还是报错ModuleNotFoundError: No module named 'Recorder'

Monomux commented 11 months ago

这里用的Recorder是自建包,这样的话需要把工程路径也添加到搜索路径

pyinstaller -F -w --add-data "./assets:assets" KeymouseGo.py -p <keymousego-directory>:<conda-directory>/envs/<env-name>/lib/python<version>/site-packages
Promisey commented 11 months ago
image

是不是我的 keymousego-directory 填错了,还是一样的报错。

Monomux commented 11 months ago

路径没有错,而且根据日志看来即使不手动添加工程路径,打包时也会搜索这里的。我比对了一下虚拟机上打包的日志和你的日志,有一些模块没有引用进来(比如没看到hook-pynput.py)。我反复重装了几次conda环境,打包时都没有复现出这个问题。🤔

1.如果没有重装过conda环境,可能是其它地方装的pyinstaller在环境变量中,对虚拟环境产生了干扰?可以通过

whereis pyinstaller

检查一下路径是否为

<anaconda-directory>/envs/<env-name>/bin/pyinstaller

2.打包的时候删除工程目录下build,dist__pycache__并在打包命令中附加--clean参数避免先前打包产生缓存的影响。

3.如果这些方法没效果,可能重装anaconda环境能解决吧。

Promisey commented 11 months ago

Py310这个环境就是依据您前面的回复,重新创建的。 image

whereis pyinstaller 命令显示路径应该没问题 image

重新打包的时候删除了build, dist,加上--clean参数,也还是报错ModuleNotFoundError: No module named 'Recorder',不过KeymouseGo-master文件夹里没找到pycache

另外我发现打包的时候识别到的平台是:421 INFO: Platform: macOS-10.16-x86_64-i386-64bit,但我用的实际是MacBook air M1 2020,不知道是否和这有关。 image

Monomux commented 11 months ago

那要不尝试重装一下anaconda?现在的anaconda是有苹果M1版本的,虽然mac也能跑x86的程序。

wastu01 commented 1 month ago

我是使用 M1 Mac Python 3.12.5 環境,沒有 PySide6==6.4.3 版本。 提示訊息已說明:6.4.3 Requires-Python <3.12,>=3.7;