當前位置:首頁 » 編程語言 » python多文件打包

python多文件打包

發布時間: 2022-06-23 20:26:50

Ⅰ 包含多個文件夾python項目打包為可執行文件exe

block_cipher = None

a = Analysis(['main.py', 'monitor.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\caption_recognizer.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\image_recognizer.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\image_vectorizer.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\network2.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\test_fun.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\unicom_area.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\unicom_area_finder.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\unicom_area_include_caption_judger.py',
'E:\\py_project\\test_wpf_python_msg\\src\\recognition_mole\\value_vectorizer.py'],
pathex=['E:\\py_project\\test_wpf_python_msg'],
binaries=[],
datas=[('E:\\py_project\\test_wpf_python_msg\\images', 'images'),
('E:\\py_project\\test_wpf_python_msg\\network_parameters', 'network_parameters')],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='main',
debug=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='main')
(1)第一個列表中寫所有的py文件,與main一個文件夾的可以直接寫文件名,不一個文件夾的需要寫完整的文件路徑。
我曾試過在pathex中加入其他文件的路徑,然後其他py文件不寫完整路徑,只寫文件名,但是失敗了。
(2)datas是中的元素是tuple類型,tuple的第一個參數是python項目中data文件(非py文件)的路徑,
第二個參數是data在exe中保存此資源的文件夾名,要和項目中的文件夾名相同
(3)最重要: 因為編譯成exe之後的main.exe是在最外層的文件夾的。因為main.py是入口文件,所以被調用的其他py文件的當前路徑都是main.py文件的當前路徑。所以在源代碼中就一定要把main.py放到最外層的項目文件夾中,這樣main.py的當前路徑才能和main.exe的路徑保持一致,才能讓其他的py文件的當前路徑不變,他們才可以找到data資源。
4.用之前配置的spec文件製作exe: pyinstaller -d main.spec
使用-d製作出來的exe比使用-f的快很多,因為-f把所有dll文件都打包到一個exe中了。
5.生成的exe在dist文件夾中

Ⅱ python怎麼打包整個項目

distutils - Python自帶的基本安裝工具, 適用於非常簡單的應用場景使用, 不支持依賴包的安裝

通過distutils來打包,生成安裝包,安裝python包等工作,需要編寫名為setup.py python腳本文件。

setuptools - 針對 distutils 做了大量擴展, 尤其是加入了包依賴機制。不支持python3,安裝完setuptools後會有easy_install

distribute - 類似於setuptools,支持python3,安裝完distribute後會有easy_install。

easy_install - setuptools 和 distribute 自帶的安裝腳本, 也就是一旦setuptools或distribute安裝完畢, easy_install 也便可用了。

pip - 目標是取代easy_install。easy_install 有很多不足: 安裝事務是非原子操作, 只支持 svn, 沒有提供卸載命令, 安裝一系列包時需要寫

腳本; pip 解決了以上問題, 已儼然成為新的事實標准, virtualenv 與它已經成為一對好搭檔;

distutils2 - setuptools 和 distribute 的誕生是因為 distutils 的不濟, 進而導致目前分化的狀況。它將成為 Python 3.3 的標准庫

packaging , 並在其它版本中以distutils2 的身份出現; 換句話說, 它和 pip 將聯手結束目前混亂的狀況。

virtualenv - 用來創建隔離的python環境,處理python環境的多版本和模塊依賴。

常識

sudo apt-get install 安裝的package存放在 /usr/lib/python2.7/dist-packages目錄中

pip 或者 easy_install安裝的package存放在/usr/local/lib/python2.7/dist-packages目錄中

手動從源代碼安裝的package存放在site-packages目錄中。

更多學習內容,請點擊Python學習網!

Ⅲ 怎麼將多個python打包成exe文件

1、安裝pywin32,可以參考《怎麼給python安裝pywin32模塊?》,一定要注意對應的python版本,否則不能安裝。

Ⅳ 如何打包python文件

最近寫了一個小小的程序,需要進行封裝exe,為了簡單,就直接用了pyinstaller這個模塊,對於python3.6版本的童鞋來說,簡直方便的不要。下面就給大家介紹一下如何用pyinstaller去封裝程序為exe程序。

首先,需要安裝一下pip這個應用,這個已經在前面的文章中說過了,windows和linux都有請借鑒windows和linux。

第二步,安裝好pip之後,在cmd命令窗口中輸入pip install pyinstaller即能安裝上pyinstaller,那麼接下來要介紹一下關於pyinstaller幾個指令了:
-w指令
直接發布的exe應用帶命令行調試窗口,在指令內加入-w命令可以屏蔽;
-F指令
注意指令區分大小寫。這里是大寫。使用-F指令可以把應用打包成一個獨立的exe文件,否則是一個帶各種dll和依賴文件的文件夾;
-p指令
這個指令後面可以增加pyinstaller搜索模塊的路徑。因為應用打包涉及的模塊很多。這里可以自己添加路徑。不過經過筆者測試,site-packages目錄下都是可以被識別的,不需要再手動添加。
那麼通常是使用-F指令,使用的語法是:pyinstaller -F (python程序名稱).py

Ⅳ Python項目文件(多個子文件,.py文件等)如何用pyinstaller打包為可執行exe文件

文件構成

使用pyinstaller打包的時候,僅打包.py文件,其餘依賴項只需在打包完成後,拷入打包生成的根目錄即可。

多文件打包

命令格式如下,下命令為一條命令,為方便顯示做了分行處理:

pyinstaller [主文件] -p [其他文件1] -p [其他文件2]
--hidden-import [自建模塊1]
--hidden-import [自建模塊2]
# 以上為一整條命令

以上文圖中結構為例,在根目錄打開命令窗口,輸入命令:

pyinstaller main.py -p mysql.py -p other.py --hidden-import mysql --hidden-import other

在目錄結構:「程序根目錄distmain」 下可以找到生成的main.exe。將其他依賴文件拷貝進入「程序根目錄distmain」 下,即可運行。

Ⅵ vs2017如何打包python項目,生成exe文件

可以使用PyInstaller把python程序打包成exe,安裝使用pip install pyinstaller,使用時,使用pyinstaller打包,參數如下

-F, –onefile 打包一個單個文件,如果你的代碼都寫在一個.py文件的話,可以用這個,如果是多個.py文件就別用
-D, –onedir 打包多個文件,在dist中生成很多依賴文件,適合以框架形式編寫工具代碼,我個人比較推薦這樣,代碼易於維護
-K, –tk 在部署時包含 TCL/TK
-a, –ascii 不包含編碼.在支持Unicode的python版本上默認包含所有的編碼.
-d, –debug 產生debug版本的可執行文件
-w,–windowed,–noconsole 使用Windows子系統執行.當程序啟動的時候不會打開命令行(只對Windows有效)
-c,–nowindowed,–console

使用控制檯子系統執行(默認)(只對Windows有效)

pyinstaller -c xxxx.py

pyinstaller xxxx.py --console
-s,–strip 可執行文件和共享庫將run through strip.注意Cygwin的strip往往使普通的win32 Dll無法使用.
-X, –upx 如果有UPX安裝(執行Configure.py時檢測),會壓縮執行文件(Windows系統中的DLL也會)(參見note)
-o DIR, –out=DIR 指定spec文件的生成目錄,如果沒有指定,而且當前目錄是PyInstaller的根目錄,會自動創建一個用於輸出(spec和生成的可執行文件)的目錄.如果沒有指定,而當前目錄不是PyInstaller的根目錄,則會輸出到當前的目錄下.
-p DIR, –path=DIR 設置導入路徑(和使用PYTHONPATH效果相似).可以用路徑分割符(Windows使用分號,Linux使用冒號)分割,指定多個目錄.也可以使用多個-p參數來設置多個導入路徑,讓pyinstaller自己去找程序需要的資源
–icon=<FILE.ICO>

將file.ico添加為可執行文件的資源(只對Windows系統有效),改變程序的圖標 pyinstaller -i ico路徑 xxxxx.py
–icon=<FILE.EXE,N> 將file.exe的第n個圖標添加為可執行文件的資源(只對Windows系統有效)
-v FILE, –version=FILE 將verfile作為可執行文件的版本資源(只對Windows系統有效)
-n NAME, –name=NAME 可選的項目(產生的spec的)名字.如果省略,第一個腳本的主文件名將作為spec的名字

Ⅶ 怎麼把 python 打包成 exe 可執行文件

Python是一個腳本語言,被解釋器解釋執行。它的發布方式:
.py文件:對於開源項目或者源碼沒那麼重要的,直接提供源碼,需要使用者自行安裝Python並且安裝依賴的各種庫。(Python官方的各種安裝包就是這樣做的)
.pyc文件:有些公司或個人因為機密或者各種原因,不願意源碼被運行者看到,可以使用pyc文件發布,pyc文件是Python解釋器可以識別的二進制碼,故發布後也是跨平台的,需要使用者安裝相應版本的Python和依賴庫。
可執行文件:對於非碼農用戶或者一些小白用戶,你讓他裝個Python同時還要折騰一堆依賴庫,那簡直是個災難。對於此類用戶,最簡單的方式就是提供一個可執行文件,只需要把用法告訴Ta即可。比較麻煩的是需要針對不同平台需要打包不同的可執行文件(Windows,Linux,Mac,...)。
本文主要就是介紹最後一種方式,.py和.pyc都比較簡單,Python本身就可以搞定。將Python腳本打包成可執行文件有多種方式,本文重點介紹PyInstaller,其它僅作比較和參考。
Freezing Your Code
各種打包工具的對比如下(來自文章Freezing Your Code):

Solution
Windows
Linux
OS X
Python 3
License
One-file mode
Zipfile import
Eggs
pkg_resources support

bbFreeze yes yes yes no MIT no yes yes yes
py2exe yes no no yes MIT yes yes no no
pyInstaller yes yes yes no GPL yes no yes no
cx_Freeze yes yes yes yes PSF no yes yes no
py2app no no yes yes MIT no yes yes yes
PS.其中pyInstaller和cx_Freeze都是不錯的,stackoverflow上也有人建議用cx_Freeze,說是更便捷些。pkg_resources新版的pyInstaller貌似是支持的。
安裝PyInstaller
對於那些網路比較穩定,能夠流暢使用pip源地址的用戶,直接下面的命令就可以搞定:
pip install pyinstaller

通常我們會下載源碼包,然後進入包目錄,執行下面的命令(需要安裝setuptools):
python setup.py install

安裝完後,檢查安裝成功與否:
pyinstaller --version

安裝成功後,就可以使用下面的命令了:
pyinstaller : 打包可執行文件的主要命令,詳細用法下面會介紹。
pyi-archive_viewer : 查看可執行包裡面的文件列表。
pyi-bindepend : 查看可執行文件依賴的動態庫(.so或.dll文件)
pyi-... : 等等。
使用PyInstaller
pyinstaller的語法:
pyinstaller [options] script [script ...] | specfile

最簡單的用法,在和myscript.py同目錄下執行命令:
pyinstaller mycript.py

然後會看到新增加了兩個目錄build和dist,dist下面的文件就是可以發布的可執行文件,對於上面的命令你會發現dist目錄下面有一堆文件,各種都動態庫文件和myscrip可執行文件。有時這樣感覺比較麻煩,需要打包dist下面的所有東西才能發布,萬一丟掉一個動態庫就無法運行了,好在pyInstaller支持單文件模式,只需要執行:
pyinstaller -F mycript.py

你會發現dist下面只有一個可執行文件,這個單文件就可以發布了,可以運行在你正在使用的操作系統類似的系統的下面。
當然,pyinstaller還有各種選項,有通用選項,如-d選項用於debug,了解pyInstaller執行的過程;還有一些針對不同平台的選項,具體用法可以訪問PyInstaller官方WIKI。
在執行pyInstaller命令的時候,會在和腳本相同目錄下,生成一個.spec文件,該文件會告訴pyinstaller如何處理你的所有腳本,同時包含了命令選項。一般我們不用去理會這個文件,若需要打包數據文件,或者給打包的二進制增加一些Python的運行時選項時...一些高級打包選項時,需要手動編輯.spec文件。可以使用:
pyi-makespec options script [script ...]

創建一個.spec文件,對於手動編輯的.spec文件,我們可以使用下面任意一條命令:
pyinstaller specfile
pyi-build specfile

PyInstaller的原理簡介
PyInstaller其實就是把python解析器和你自己的腳本打包成一個可執行的文件,和編譯成真正的機器碼完全是兩回事,所以千萬不要指望成打包成一個可執行文件會提高運行效率,相反可能會降低運行效率,好處就是在運行者的機器上不用安裝python和你的腳本依賴的庫。在Linux操作系統下,它主要用的binutil工具包裡面的ldd和objmp命令。
PyInstaller輸入你指定的的腳本,首先分析腳本所依賴的其他腳本,然後去查找,復制,把所有相關的腳本收集起來,包括Python解析器,然後把這些文件放在一個目錄下,或者打包進一個可執行文件裡面。
可以直接發布輸出的整個文件夾裡面的文件,或者生成的可執行文件。你只需要告訴用戶,你的應用App是自我包含的,不需要安裝其他包,或某個版本的Python,就可以直接運行了。
需要注意的是,PyInstaller打包的執行文件,只能在和打包機器系統同樣的環境下。也就是說,不具備可移植性,若需要在不同系統上運行,就必須針對該平台進行打包。

Ⅷ 如何把python文件打包成exe

建議使用 Py2exe

具體使用 首先安裝 pip

然後使用 pip 安裝 py2exe

然後為你的項目寫一個安裝文件如 setup_win.py 文件內容類似這樣

#setup_win.py

fromdistutils.coreimportsetup
importpy2exe

options={"py2exe":{
"compressed":1,
"optimize":2,
"bundle_files":1#打包資源到一個文件
}}

#命令行程序把windows改為console
setup(windows=["main.py"],options=options,zipfile=None)

然後執行 python/python3 setup_win.py py2exe 你的可執行exe單文件就做好了

Ⅸ 如何將一整個python工程打包

1、下載並安裝py2exe,可下載最新版本。

2、編寫安裝腳本,比較簡單,不過多解釋,如下:

Screenshot_setup.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from distutils.core import setup
import py2exe

includes = ["encodings", "encodings.*"]
data_files = ['CameraDll.dll']
options = {"py2exe":
{ "compressed": 1,
"optimize": 2,
"bundle_files": 1,
"includes": includes

}
}

setup(
version = "1.0",
description = "Screenshot Tool",
name = "Screenshot Tool",
options = options,
zipfile=None,
data_files = data_files,
console=[{"script": "Screenshot.py", "icon_resources": [(1, "Screenshot.ico")] }]
)
各參數含義見第5小節或執行python命令行下執行help(py2exe)查看。

3、打包程序:

a、將要找包的程序、文件和打包腳本放在同一目錄下,如下:

E:\tmp\pyexe_tmp>tree /F
文件夾 PATH 列表
卷序列號碼為 0007F240 101F:F68D
E:.
CameraDll.dll
screenshot.ico
Screenshot.py
screenshot_setup.py
沒有子文件夾

E:\tmp\pyexe_tmp>
b、執行打包腳本:
E:\tmp\pyexe_tmp>python screenshot_setup.py py2exe
python screenshot_setup.py py2exe
running py2exe
creating E:\tmp\pyexe_tmp\build
creating E:\tmp\pyexe_tmp\build\bdist.win32
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\collect-2.6
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\bundle-2.6
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\temp
creating E:\tmp\pyexe_tmp\dist
*** searching for required moles ***
*** parsing results ***
*** finding dlls needed ***
*** create binaries ***
*** byte compile python files ***
writing byte-compilation script 'e:\tmp\tmp1ecbcw.py'

Ⅹ 怎麼把python打包成exe

PyInstaller 是一個用來將 Python 程序打包成一個獨立可執行軟體包,支持 Windows、Linux 和 Mac OS X。
下載
https://github.com/pyinstaller/pyinstaller/

2. 使用

python製作exe可執行文件的方法---使用pyinstaller

python生成windows下exe格式的可執行程序有三種可選方案: py2exe是大家所熟知的,今天要介紹pyinstaller, 這個工具全平台可用。我曾使用python製作一個工具程序供公司同事使用後,由於公司使用mac linux windows都有很多,就使用過它來將程序做成可執行文件,兼容性好,只是會使得程序在linux平台和mac平台啟動較慢(windows還是比較快的),但基本夠用。

安裝完pyinstaller之後就可以開始了。

1.使用pyinstaller生成可執行文件的方法
1.1 將依賴文件集中到一個文件夾:
pyinstaller -D -w main.py #把main.py替換成你的主入口python文件即可。
-w參數代表main.py是一個窗體程序。
1.2 將所有依賴文件都打包到同一個可執行文件中:
pyinstaller -F -w main.py

2.調查pyinstaller生成程序的載入過程
使用如下命令,可以得到運行時的跟蹤,tracing ,loader 的載入過程。
pyinstaller -Fwd aui.py #把aui.py 換成你需要偵測的文件即可。

熱點內容
社會腳本法定義 發布:2025-03-18 03:59:00 瀏覽:326
安卓擴展存儲空間 發布:2025-03-18 03:57:34 瀏覽:9
linuxat沒反應 發布:2025-03-18 03:56:51 瀏覽:581
怎麼看是多少位編譯器 發布:2025-03-18 03:47:32 瀏覽:660
solr索引存儲 發布:2025-03-18 03:46:52 瀏覽:330
縫合演算法 發布:2025-03-18 03:46:06 瀏覽:363
java遍歷二維數組 發布:2025-03-18 03:36:01 瀏覽:411
銳捷源碼 發布:2025-03-18 03:26:55 瀏覽:436
訴訟中止裁定後可否解壓 發布:2025-03-18 03:24:51 瀏覽:128
sqlserver全文搜索 發布:2025-03-18 03:23:58 瀏覽:715