發表文章

目前顯示的是有「Python」標籤的文章

使用Pyinstaller打包多個文件與資料夾

  使用Pyinstaller打包多個文件與資料夾到單一執行檔 >使用Pyinstaller打包多個文件與資料夾到單一執行檔 2025-08-14 指令的介紹 在 Windows 系統中使用Pyinstaller非常簡單,尤其是只有包含一個主程式( .py 檔案) PowerShell pyinstaller main.py 執行完此一程式後,會生成兩個資料夾 build 和 dist ,build裡面會寫入log檔案和工作檔案,dist裡面會寫入main.py的可執行檔,並且生成一個以第一個 .py 檔名命名的 .spec 檔案 舉例來說 : PowerShell pyinstaller main.py 會生成一個 main.spec 以及一個 ./dist/main.exe 然而對於需要調用其他目錄下資料的Python程式,例如 : PowerShell main_folder/ │ ├── main.py # Flask 後端程式 ├── templates/ │ ├── form.html # 表單頁面(前端) │ └── result.html # 顯示生成 Prompt 結果 ├── static/ # (可放 CSS/JS 資源) └── README.md # 專案說明文件 如果不強求把它封裝成單一的執行檔,也就是執行檔與整份資料夾的結構不能有路徑的變化,那可以維持IDE模式下的相對路徑。 這也是pyinstaller預設的封裝方式 -D, --onedir 但如果想要把所有資料完整的封裝成一個單一的執行檔,則需要 -F, --onefile 這道指令 而且如果主程式 main.py 會需要調用目錄中 templates/ 下的所有檔案,就不能單單只用一行指令混過去了。 而是需要增加如以下使用 --add-data 這個指令 PowerShell pyinstaller main.py -F --add...

在 Windows 建立 Python 虛擬環境時,無法執行Activate.ps1的問題

  在 Windows 建立 Python 虛擬環境時啟用 PowerShell 的 Execution Policy 教學 在 Windows 建立 Python 虛擬環境後,PowerShell 無法啟用 Activate.ps1 的解決方案 2025-08-13 在 Windows 系統中建立 Python 虛擬環境,例如透過 PowerShell python -m venv venv 後,會生成一個 venv 資料夾。當你在 PowerShell 下嘗試啟用虛擬環境: PowerShell venv\Scripts\Activate.ps1 可能會出現以下警告: PowerShell cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170. 原因說明 這是由於 PowerShell 的安全性機制 Execution Policy 所致。在預設情況下,Execution Policy 可能是最嚴格的 Restricted ,不允許執行任何腳本。 可以用以下指令查詢目前狀態: PowerShell Get-ExecutionPolicy # 知道目前的狀態 若結果為: PowerShell Restricted 表示當前環境禁止執行腳本(包含 Activate.ps1 )。 解決方法 將 Execution Policy 從 Restricted 暫時調整為 Unrestricted ,以便執行啟用腳本。以下提供兩種方式: 方法一:系統層級(需管理員權限,較不建議日常使用) PowerShell(以系統管理員執行) Set-ExecutionPolicy Unrestricted 使用後請記得在完成工作後,恢復原本的設定以維持系統安全。 ...

Python小筆記---跳出無限迴圈的方式

這幾天想要做出一個Python的計時器 但是當我們開始計時 進入一個無限迴圈 像是下面這樣 while ( True ):     #要執行的函式     Pass 想要暫停時卻跳不出迴圈 又不想讓終端機暫停(想要畫面有秒數) 找 網路上的資料 發現可以這樣寫 try :     while ( True ):         #想要執行的函式         Pass except KeyboardInterrupt :     Pass 這樣的意思是 我們今天按 Ctrl + C 則迴圈會進到例外區 也就是退出迴圈 完美解決問題 小缺點是不能自己控制要甚麼按鍵