日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python编译成exe有意义吗_python工程编译成EXE

發(fā)布時間:2023/12/19 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python编译成exe有意义吗_python工程编译成EXE 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

python編譯成EXE文件后,可以獨立使用。親測,一個復雜的python工程包含多個包多個模塊,可以生成exe文件。

目的

windows下將整個python工程編譯成單個EXE或者單個目錄帶EXE文件

工具

PyInstaller(windows,源代碼python3.6)

步驟項目根目錄下新建frozen_dir.py凍結路徑(防止編譯成exe后相對路徑找不到)

# -*- coding: utf-8 -*-

import sys

import os

# 凍結路徑,所有路徑以此為基準,打包后才能使用

def app_path():

"""Returns the base application path."""

if hasattr(sys, 'frozen'):

# Handles PyInstaller

return os.path.dirname(sys.executable).replace("\\", "/")

return os.path.dirname(__file__).replace("\\", "/"路徑引用

import frozen_dir

root_path = frozen_dir.app_path()

path = os.path.join(root_path, default_path)根目錄下新建入口文件main.py

from test import main if __name__ == '__main__': main()根目錄下新建編譯文件build.py

# -*- coding: utf-8 -*-

import PyInstaller.__main__

import frozen_dir

SETUP_PATH = frozen_dir.app_path()

def build():

PyInstaller.__main__.run([

'--name=%s' % "main", # 生成的exe文件名

['--onedir', '--onefile'][0], # 單個目錄 or 單個文件

'--noconfirm', # Replace output directory without asking for confimation

['--windowed', '--console'][1],

'--add-binary=./python3.dll;.', # 外部的包引入

'--add-binary=%s' % SETUP_PATH + '/config/logging.yaml;config', # 配置項

'--add-data=%s' % SETUP_PATH + '/config/config.ini;config', # 分號隔開,前面是添加路徑,后面是添加到哪個目錄

'--hidden-import=%s' % 'sqlalchemy.ext.baked',

'--hidden-import=%s' % 'frozen_dir', # 手動添加包,用于處理 module not found

'main.py', # 入口文件

])

if __name__ == '__main__':

build()

5.運行build文件,根目錄下dist/main/main.exe 為可執(zhí)行文件,雙擊可運行。運行閃退的話,可以cmd進入到相關路徑運行main.exe,缺失的包在build.py文件中添加hidden-imports項。

總結

以上是生活随笔為你收集整理的python编译成exe有意义吗_python工程编译成EXE的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。