KeymouseGo icon indicating copy to clipboard operation
KeymouseGo copied to clipboard

mac M1安装KeymouseGo_v5_1_1 mac_app启动失败

Open Promisey opened this issue 2 years ago • 19 comments

  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‘。”

Promisey avatar Sep 07 '23 02:09 Promisey

same problem

KevinJun2017 avatar Sep 18 '23 02:09 KevinJun2017

+1

ZihouWong avatar Sep 23 '23 12:09 ZihouWong

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

OKOtohime avatar Nov 01 '23 13:11 OKOtohime

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

Promisey avatar Nov 01 '23 14:11 Promisey

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

OKOtohime avatar Nov 01 '23 14:11 OKOtohime

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

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

Promisey avatar Nov 01 '23 14:11 Promisey

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

OKOtohime avatar Nov 01 '23 14:11 OKOtohime

感谢尝试去复现解决🙏

conda install pyside6一直卡住, image

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

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

Promisey avatar Nov 01 '23 15:11 Promisey

问题应该是依赖被装到了全局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

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

OKOtohime avatar Nov 02 '23 11:11 OKOtohime

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

Promisey avatar Nov 02 '23 15:11 Promisey

复现不了这个问题😟,我使用的是通过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

OKOtohime avatar Nov 04 '23 01:11 OKOtohime

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

Promisey avatar Nov 04 '23 12:11 Promisey

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'

Promisey avatar Nov 04 '23 14:11 Promisey

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

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

OKOtohime avatar Nov 04 '23 14:11 OKOtohime

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

Promisey avatar Nov 04 '23 15:11 Promisey

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

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

whereis pyinstaller

检查一下路径是否为

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

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

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

OKOtohime avatar Nov 05 '23 11:11 OKOtohime

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

Promisey avatar Nov 05 '23 16:11 Promisey

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

OKOtohime avatar Nov 06 '23 15:11 OKOtohime