python發布打包
A. 如何發布python程序
如何發布一個Python程序:
1、安裝一個pyInstaller
在pycharm里點 file—–>setting—–>Project workspace——>Interpreter——>點pip右邊的+號,進入下面這個界面:
搜索pyInstaller, 點擊左下方Install package安裝(出現錯誤了可以多安裝幾次)
(或者在命令提示符界面 用 pip install pyinstaller命令安裝)
2、將.py文件打包成.exe文件
在完成第一步的安裝後,就開始我們的打包。在打包之前可以先運行一下你要打包的.py文件是否可以運行,然後進行打包。
在pycharm中右鍵點擊你將要打包的文件,找到Open in terminal點一下。
在下面出現的Local框內輸入命令:pyinstaller -F 文件名,運行。
然後進行打包
打包完成後,稍等一下會刷新出一個dist文件夾, 點擊 ,在裡面有一個 .exe文件,右鍵,點擊裡面的 Show in Explore 找到一個.exe文件(如果不一樣的可以看一下你下面打包成功後出現的路徑。)
3、發送
將打包好的.exe文件拉到你之前.py文件所在的文件夾,將所有需要的素材一起發送。
別人收到後就能打開你的.exe文件運行你的程序。
眾多python培訓視頻,盡在python學習網,歡迎在線學習!
B. 如何將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'
C. 如何打包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
D. 開發了一個python項目怎麼打包
可以用pyinstaller打包成可執行文件。
E. 如何將一整個python工程打包
按照習慣,我們使用pip來安裝模塊。我們一直以來強調,要用最偷懶的方法。寫代碼的人尤其如此。人生苦短,你要偷懶~
2Python | 如何用pip安裝模塊和包
2
雖然部分第三方模塊有獨立的exe安裝包,不過使用pip安裝的另一個好處是,pip會自動安裝這個第三方包需要的依賴模塊(比如,這里幫我們下載了pypiwin32這個依賴)。這不,又省心不少。
3
安裝完成後,我們可以在如下路徑找到Pyinstaller應用程序。
跟pip在同一個目錄
END
發布命令介紹
1
有兩種方法調用發布流程:
①直接使用Pyinstaller應用程序調用待發布腳本
②用Python調用pyinstaller-script腳本再調用待發布腳本
兩種方法用起來沒什麼差別,方法①少個步驟,就用方法①了咯
2
-w指令
直接發布的exe應用帶命令行調試窗口,在指令內加入-w命令可以屏蔽
3
-F指令
注意指令區分大小寫。這里是大寫。使用-F指令可以把應用打包成一個獨立的exe文件,否則是一個帶各種dll和依賴文件的文件夾
4
-p指令
這個指令後面可以增加pyinstaller搜索模塊的路徑。因為應用打包涉及的模塊很多。這里可以自己添加路徑。不過經過筆者測試,site-packages目錄下都是可以被識別的,不需要再手動添加
END
發布和發布路徑
使用下面的完整發布命令發布獨立exe應用
發布文件的路徑為默認的命令行窗口路徑下
F. python怎麼把軟體打包出來
Python是純粹的自由軟體,具有豐富和強大的庫。能夠把用其他語言製作的各種模塊很輕松地聯結在一起。常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然後對其中有特別要求的部分,用更合適的語言改寫
如何將python程序打包為exe
但是由於Python是一種解釋性語言,不具有Windows可執行程序的已編譯完成的二進制特性,所以要執行一個Python腳本,需要使用Python.exe來進行解釋執行,如果要單獨使得Python腳本具有exe程序的特性,需要使用第三方工具,即將Python腳本打包轉換,此處以py2exe工具來進行說明
如何將python程序打包為exe
py2exe是一個將python腳本轉換成windows上的可獨立執行的可執行程序(*.exe)的工具,這樣,你就可以不用裝python而在windows系統上運行這個可執行程序。py2exe需要到相關網站去下載安裝,需要注意的是安裝時一定要對應你的系統已安裝的Python版本
如何將python程序打包為exe
具體用法為,假設有一個helloworld.py的python腳本,把其轉換為獨立運行的exe程序,並運行在沒有安裝python的windows系統上。那麼首先要做的是寫一個用於發布程序的設置腳本例如mysetup.py,在其中的setup函數前插入語句import py2exe
如何將python程序打包為exe
示例腳本:#mysetup.py
from distutils.core import setup
import py2exe
setup(console=["helloworld.py"])
然後在命令行中執行如下語句:
python mysetup.py py2exe
如何將python程序打包為exe
以上命令執行完成後,會產生一個名為dist的子目錄,其中包含了helloworld.exe,python24.dll,library.zip這些文件。具體發布時要將這個目錄中的文件一起打包發布,在沒有安裝Python的Windows系統中直接運行helloworld.exe即可
如何將python程序打包為exe
7
以上的mysetup.py腳本創建了一個控制台的helloword.exe程序,如果需要創建圖形用戶界面的程序,只需要將mysetup.py中的console=["helloworld.py"]替換為windows=["myscript.py"]既可;另外需要注意的是,py2exe一次能夠創建多個exe文件,僅需要將這些腳本文件的列表傳遞給console或windows的關鍵字參數
G. 怎麼把 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打包的執行文件,只能在和打包機器系統同樣的環境下。也就是說,不具備可移植性,若需要在不同系統上運行,就必須針對該平台進行打包。
H. 如何將自己的Python代碼打包發布到pypi上
什麼是pypi
簡單的說pypi是一個python包的倉庫,裡面有很多別人寫好的python庫,你可以通過easy_install或者pip進行安裝,方便用戶更方面的使用你的代碼模塊。
將代碼打包並上傳到pypi上,大體上分為以下幾步:
1、整理代碼的目錄結構,方便打包和python的import,為了方便引用,需要將代碼模塊變成一個包,所以需要將功能代碼用目錄來整合方便引用,並且需要創建__init__文件,__init__中可以沒有內容,也可以在__init__文件中進行import(from .extractor import Document)操作,以減少整體模塊引用時import的層數,避免錯誤。
[html]viewplain
├──./tidypage
│├──./tidypage/cleaners.py
│├──./tidypage/extractor.py
│├──./tidypage/__init__.py
│└──./tidypage/titles.py
2、功能模塊的目錄整理好後,就可以開始整理和添加發布到pypi上所使用的文件了
tidy_page
├──LICENSE
├──README.rst
├──requirements.txt
├──setup.py
├──tidypage
│├──cleaners.py
│├──extractor.py
│├──__init__.py
│└──titles.py
就是將原來的目錄深移一層,文件夾名稱可以根據自己意願。然後在到第一層的目錄下創建些特殊文件,具體你可以看看下面這個文件結構你就明白了
LICENSE文件是授權文件,比如:MIT license, APACHElicense
README.rst 文件想必大家都不陌生,其實就是項目介紹和使用說明
setup文件才是重點,是python模塊安裝所需要的文件,它的格式如下:
#!/usr/bin/envpython
from__future__importprint_function
fromsetuptoolsimportsetup,find_packages
importsys
setup(
name="tidy-page",
version="0.1.1",
author="DesionWang",
author_email="[email protected]",
description="htmltextparser,getthecontentformhtmlpage",
long_description=open("README.rst").read(),
license="MIT",
url="https://github.com/desion/tidy_page",
packages=['tidypage'],
install_requires=[
"beautifulsoup4",
lxml_requirement
],
classifiers=[
"Environment::WebEnvironment",
"IntendedAudience::Developers",
"OperatingSystem::OSIndependent",
"Topic::TextProcessing::Indexing",
"Topic::Utilities",
"Topic::Internet",
"Topic::SoftwareDevelopment::Libraries::PythonMoles",
"ProgrammingLanguage::Python",
"ProgrammingLanguage::Python::2",
"ProgrammingLanguage::Python::2.6",
"ProgrammingLanguage::Python::2.7",
],
)
- NAME名字,一般放你包的名字即可PACKAGES包含的包,可以多個,這是一個列表DESCRIPTION關於這個包的描述LONG_DESCRIPTION參見read方法說明KEYWORDS關於當前包的一些關鍵字,方便PyPI進行分類。AUTHOR誰是這個包的作者,寫誰的名字吧AUTHOR_EMAIL作者的郵件地址URL你這個包的項目地址,如果有,給一個吧,沒有你直接填寫在PyPI你這個包的地址也是可以的VERSION當前包的版本,這個按你自己需要的版本控制方式來LICENSE授權方式INSTALL_REQUIRES模塊所依賴的python模塊
輸出一般是running check如果有錯誤或者警告,就會在此之後顯示沒有任何顯示表示Distutils認可你這個setup.py文件。
如果沒有問題,那麼就可以正式打包,執行下面的代碼:
python setup.py sdist
執行完成後,會在頂層目錄下生成dist目錄和egg目錄
文中的classifiers的內容並不是隨便填寫的,你需要參照本文參考文檔中的PyPI Classifiers來寫
3、開始使用Distutils進行打包
為了保證效果,在打包之前我們可以驗證setup.py的正確性,執行下面的代碼
python setup.py check
tidy_page
├──tidy_page/dist
│├──tidy_page/dist/tidy-page-0.1.0.tar.gz
│└──tidy_page/dist/tidy-page-0.1.1.tar.gz
├──tidy_page/LICENSE
├──tidy_page/README.rst
├──tidy_page/setup.py
├──tidy_page/tidypage
│├──tidy_page/tidypage/cleaners.py
│├──tidy_page/tidypage/extractor.py
│├──tidy_page/tidypage/__init__.py
│└──tidy_page/tidypage/titles.py
├──tidy_page/tidy_page.egg-info
│├──tidy_page/tidy_page.egg-info/dependency_links.txt
│├──tidy_page/tidy_page.egg-info/PKG-INFO
│├──tidy_page/tidy_page.egg-info/requires.txt
│├──tidy_page/tidy_page.egg-info/SOURCES.txt
│└──tidy_page/tidy_page.egg-info/top_level.txt
[distutils]index-servers=pypi[pypi]repository=https://pypi.python.org/pypiusername=your_usernamepassword=your_passwor
4、打包完成後就可以准備將打包好的模塊上傳到pypi了,首先你需要在pypi上進行注冊gotoPyPI Live
注冊完成後,你需要在本地創建好pypi的配置文件,不然有可能會出現使用http無法上傳到pypi的問題
Create a.pypircconfiguration file,在用戶的home目錄下創建.pypirc文件,文件的內容如下
chmod600~/.pypirc
pythonsetup.pyregister-rpypi
python setup.py sdist upload -r pypi
在pypi上注冊模塊
上傳python文件包,沒有問題你就可以在pypi上看到你上傳的包了並且可以使用pip搜索和install你的python包了
I. 怎麼把python打包成一個程序
一、安裝pyinsatller打開命令行窗口,輸入如下指令
pip3 install pyinstaller
然後靜待pyinstaller自動安裝好
二、使用pyinstaller打包Python程序
在你的Python程序文件夾上(不點進去)按住shift並且右鍵,在彈出的選項中點擊"在此處打開命令行窗口"或者「在此處打開PowerShell窗口」或者先進入命令行窗口,然後使用cd指令進入程序文件夾,示例:
cd G:\工程儲存\Python工程\love
輸入以下指令,開始打包
pyinstaller -F -w (-i icofile) filename
filename表示你的Python程序文件名
-w 表示隱藏程序運行時的命令行窗口(不加-w會有黑色窗口)
括弧內的為可選參數,-i icofile表示給程序加上圖標,圖標必須為.ico格式icofile表示圖標的位置,建議直接放在程序文件夾裡面,這樣子打包的時候直接寫文件名就好輸入完成,按回車,就會開始自動打包了,
第一次打包過程可能比較緩慢輸入
示例:pyinstaller -F -w -i favicon love.py
然後我們進入到程序目錄裡面會再看到一個名稱為dist目錄,打包好的exe程序就在裡面
J. python使用br打包發布apk
如下;
py如果沒有Qt \ bin,您可以復制本文件Qt網站。如果找不到現有PyQt5插件目錄的錯誤出現在包裝過程中,然後,1)找到PyQt5文件夾/圖書館/插件路徑下蟒蛇目錄下安裝,並復制內容;2)按照下面的錯誤報告一個句子,例如,如下:路徑檢查:_build /圖書館/插件的內部去C驅動和創建它們。最後,將剛才復制的復制進去,然後再做一次,包成功。特別注意:如果你發現你可以在你的電腦打開它的包裝完成後,但你不能打開它在別人的電腦,錯誤報告如下:xxx未能執行腳本。在這個時候,我們需要替換上面的命令在步驟4 w c,然後刪除所有的東西都打包和重新包裝。c程序可以打開終端窗口cmd的形式,這樣操作失敗時,將一個特定的錯誤報告,具體的錯誤將被修改。