tixcraft_bot icon indicating copy to clipboard operation
tixcraft_bot copied to clipboard

Intel 版本 Mac 執行閃退 / 缺字 (無法更改 Python 版本)

Open lackneets opened this issue 1 year ago • 5 comments

執行環境

  • Apple MacBook Pro 2019 Intel Core i5
  • 32 GB 3733 MHz LPDDR4X
  • MacOS 14.1.2(23B92)

嘗試方法1

下載版本為: https://github.com/max32002/tixcraft_bot/releases/download/20231212/MaxBot_20231212.zip

已經將 Terminal 預設的 Python3 版本從預設 3.12 降為 Python 3.10.13

我使用 brew 安裝 [email protected], 3.11 並使用 ln -s 替換掉 /Library/Frameworks/Python.framework/Versions/3.12/bin/python3,因為我的電腦試了各種方法都改不了預設值

~執行時打開立即閃退,沒有任何錯誤訊息~ 已知道原因


嘗試方法2

如果嘗試使用原始碼執行,會發出此錯誤

$ python3 -m pip install -r pip-req.txt
$ python3 settings.py
Traceback (most recent call last):
  File "/Users/lackneets/tixcraft_bot/settings.py", line 5, in <module>
    import Tkinter as tk
ModuleNotFoundError: No module named 'Tkinter'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/lackneets/tixcraft_bot/settings.py", line 10, in <module>
    import tkinter as tk
  File "/usr/local/Cellar/[email protected]/3.10.13_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/tkinter/__init__.py", line 37, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'

我是否漏掉什麼步驟?或是不支援我的Mac版本?

Update

後來看故障排除說必須放到 /Application 底下,於是我將應用程式放進去,終於成功打開了,但是遇到缺字

CleanShot 2023-12-17 at 18 08 50@2x

實際發現 APP 是使用 Python 3.9 打開 我似乎沒辦法控制它使用哪個 Pyhon 版本 有人能提供幫助嗎?

CleanShot 2023-12-17 at 18 23 19@2x

lackneets avatar Dec 17 '23 10:12 lackneets

"看故障排除說必須放到 Application底下", 你誤會了, 那個是瀏覽器APP 要放到 Application 目錄, 為避免誤會, 我把瀏覽器加上引號. 也在最下面加註說明.

MaxBot.app 不需要放到 Application 目錄下, 其實 MaxBot 只是單純的 python script, 在安裝完Python 的執行檔後, 就可以被執行. 請參考看看這篇文章的執行方法: https://max-everyday.com/2023/11/buy-ticket-by-vm/

max32002 avatar Dec 18 '23 02:12 max32002

3.10.13 太新, 試看看這個 3.10.11 版. https://www.python.org/downloads/release/python-31011/

max32002 avatar Dec 18 '23 04:12 max32002

謝謝你的回覆。 不過我在Mac執行封裝 APP 仍無法解決 MaxBot.app 會以系統內建的 Python 版本開啟:

有裝 xcode 情況,會執行這個 Python: /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/Resources/Python.app/Contents/MacOS/Python

移除 xcode 情況,會執行這個 Python: /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/Resources/Python.app/Contents/MacOS/Python

總之,封裝的 MaxBot.app 還是沒辦法使用。 感覺需要設定些什麼,希望有教學如何設置

閃退問題

確實後來我把 MaxBot.app 移回到下載目錄執行也不會閃退了。

為了重現問題,我重新再下載一次,發現剛下載解壓出來的都會閃退。 但一旦丟進 /Appications 就會正常,再拿出來也正常

本來懷疑是權限問題,但看起來都一樣,不知原因:

CleanShot 2023-12-18 at 13 25 38

Workaround

目前我的預設 python 是 3.11 後來亂試一通執行了

$ brew install [email protected]
$ brew install [email protected]
$ brew install [email protected]

並直接從原始碼執行成功啟動了 我也不確定哪個指令奏效

$ python pip install
$ python3 pip install
$ python3 settings.py

CleanShot 2023-12-18 at 13 17 58

我對 Python 語言不熟,不過最早有執行過 python3 -m pip install -r pip-req.txt 這指令好像沒效果

最後,我至少可以打開看到 GUI,但還沒實測是否正常,尤其驗證碼的部分。

lackneets avatar Dec 18 '23 05:12 lackneets

你執行 python3 就可以看到 python 的版本號碼.

如果安裝很多個 python3.x 版, 不同的環境下的用法會有差異, 有些會是執行 python3.9 可以指定用 python3.9 來跑. 下面的影片是執行 python3.9: https://youtu.be/8M5LwSZNDX0

用 python 3.11 跑, 不確定 ddddocr 會不會失敗。

max32002 avatar Dec 18 '23 05:12 max32002

Hi,

最近我也遇到缺字的問題,以下是我的環境:

  • Intel macOS Sonoma 14.2.1
  • Python 3.9.18

確認將 Python3 版本升級至 3.10.11 之後能夠解決缺字問題,附上我的執行方式,給大家參考。

$ python3 --version
Python 3.10.11
$ python3 -m venv tixcraft
$ source tixcraft/bin/activate
$ python3 -m pip install -r pip-req.txt
$ python3 settings.py

@max32002 大,我想是否能夠在 Readme 註明能夠正常運行的版本呢?如果您覺得麻煩,我也可以提交對應的 PR,謝謝。

ryanwang522 avatar Jan 17 '24 14:01 ryanwang522

請參考這部影片的解法, 透過原始碼執行MaxBot教學影片: https://youtu.be/HpVG91j0lbI

Step 1: 取得source code:

git clone https://github.com/max32002/tixcraft_bot.git

Step 2: 進入 clone 的資料夾: tixcraft_bot:

cd tixcraft_bot

Step 3: 安裝第三方套件:

python3 -m pip install -r pip-req.txt

Step 4: 執行設定界面主桯式:

python3 settings.py

如果遇到MaxBot 改版, 請重新操作上面4個步驟一次, 即可取得新的版本.

如果MaxBot 沒改版, 第二次要再執行的話, 使用 Step 2 + Step 4, 這2行指令, 就可以執行 MaxBot.

如果你是 ARM CPU 應該會在 Step 3 就顯示錯誤訊息, 解法: https://github.com/max32002/tixcraft_bot/issues/82#issuecomment-1878986084

在 macOS 裡,如何切換 python 版本?

網路上有很多做法,比較簡單的是在 Terminal app 裡,執行:

sudo rm -rf /Library/Frameworks/Python.framework/
rm -rf /usr/local/bin/python*

然後再到下面的網址裡挑選想要的 stable(穩定版的)python 版本即可: https://www.python.org/downloads/macos/

樓上用 venv 是更好的解法, 可以同時存在多個 python 版本, 缺點就是對不懂電腦的人, 難度會較高一點點.

venv 在網路上有超級多的教學文章, 有空的話可以參考看看這篇: https://stackoverflow.max-everyday.com/2023/02/python-venv-django/

如果還有遇到其他的問題, 歡迎再開新的issue.

max32002 avatar Jan 31 '24 08:01 max32002