PyCharm 是 Python 開發者所熟知的一款跨平台 Python 集成開發環境 (IDE),其內置了非常實用的打包工具 PyInstaller,用於將 Python 項目打包成一個可執行文件,並自動處理依賴關係。在本篇文章中,我們將通過多個方面的闡述,來介紹 PyCharm 和 PyInstaller 的具體用法。
一、安裝與基本用法
1、 安裝 PyCharm :
> wget https://www.jetbrains.com/pycharm/download/#section=linux
> tar xf pycharm-2020.3.tar.gz
> cd pycharm-2020.3/bin/
> ./pycharm.sh
2、打開 PyCharm,創建 Python 項目,例如創建一個示例項目 test_project。
def hello():
print("Hello,world")
if __name__ == '__main__':
hello()
3、在 PyCharm 中單擊 “Tools -> Run PyInstaller”,即可彈出 PyInstaller 打包窗口,選擇可執行文件輸出的目錄和文件名。
4、運行打包過程後,PyInstaller 會自動提取項目中的依賴項,並將目標文件生成到指定目錄中,同時還會生成一個 dist 目錄,裡面包含了最終生成的可執行文件和其他所需的文件。
二、添加文件和設置
1、添加文件 :
添加一個非 Python 文件到項目目錄下,例如添加一個目錄 assets ,其中包含一個圖片 logo.jpg。然後在代碼中引用該圖片,示例代碼如下:
import os
def hello():
print("Hello,world")
root_path = os.path.dirname(os.path.abspath(__file__))
assets_path = os.path.join(root_path, "assets")
logo_path = os.path.join(assets_path, "logo.jpg")
print(f"Logo image path : {logo_path}")
if __name__ == '__main__':
hello()
2、在 PyCharm 中單擊 “Files -> Settings”,打開 PyCharm 的設置窗口。選擇 “Project -> Project Structure”,然後在右側的 “Add Content Root” 中添加要包含在可執行文件中的目錄。
3、在 “Settings” 窗口中選擇 “Build -> Executable files”,然後填寫所需的相關信息,例如可執行文件輸出的目錄和文件名,以及 Python 解釋器的路徑等。如下圖所示:
三、高級用法
1、自定義 PyInstaller 打包參數:
在 PyCharm 中單擊 “Tools -> Run PyInstaller -> Edit Configurations”,然後修改 PyInstaller 打包參數,例如添加以下參數:
-w : 隱藏命令行窗口,打包成 GUI 程序
--icon=logo.ico : 指定 .ico 文件(支持 .png/.ico)、用於生成應用程序圖標
--name=test : 指定生成exe文件的文件名
示例代碼:
import os
def hello():
print("Hello,world")
root_path = os.path.dirname(os.path.abspath(__file__))
assets_path = os.path.join(root_path, "assets")
logo_path = os.path.join(assets_path, "logo.jpg")
print(f"Logo image path : {logo_path}")
if __name__ == '__main__':
hello()
2、多平台打包:
修改 PyInstaller 打包參數,添加以下參數:
--onefile : 生成一個獨立可執行文件,而不是一系列依賴文件,可以方便地分發和部署項目
--clean : 編譯前先清理緩存和臨時文件,避免因編碼問題導致程序運行失敗
示例代碼:
> pyinstaller --onefile --name test --clean hello_world.py
結語
本篇文章介紹了 PyCharm 和 PyInstaller 的基本用法和高級用法。通過本文的學習,相信你已經能夠熟練地使用 PyCharm 和 PyInstaller 來打包和分發你的 Python 項目了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/204476.html