Python編程基礎(chǔ)與應(yīng)用第13章 虛擬環(huán)境與程序打包發(fā)布_第1頁
Python編程基礎(chǔ)與應(yīng)用第13章 虛擬環(huán)境與程序打包發(fā)布_第2頁
Python編程基礎(chǔ)與應(yīng)用第13章 虛擬環(huán)境與程序打包發(fā)布_第3頁
Python編程基礎(chǔ)與應(yīng)用第13章 虛擬環(huán)境與程序打包發(fā)布_第4頁
Python編程基礎(chǔ)與應(yīng)用第13章 虛擬環(huán)境與程序打包發(fā)布_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

13

虛擬環(huán)境與程序打包發(fā)布XXXX

大學(xué)

XX

學(xué)院XXX

教授2學(xué)習(xí)目標(biāo):掌握使用標(biāo)準(zhǔn)庫venv

創(chuàng)建虛擬環(huán)境的方法掌握模塊、包與庫的構(gòu)建與發(fā)布方法掌握將Python

文件打包成exe

文件的方法思政內(nèi)涵:通過對程序打包發(fā)布的學(xué)習(xí),體會軟件資源分享的快樂,廣大學(xué)子要樹立樂于奉獻(xiàn)的精神。第

13

虛擬環(huán)境與程序打包發(fā)布313.1 Python

虛擬環(huán)境使用Python

開發(fā)項(xiàng)目免不了要安裝各種包。我們安裝的所有包都會被安裝到同一個目錄中供Python

調(diào)用。當(dāng)兩個

Python

項(xiàng)目用到同一個包的不同版本或一個新項(xiàng)目需要用到的包會影響以前已經(jīng)完成調(diào)試的項(xiàng)目的開發(fā)環(huán)境時,Python

開發(fā)環(huán)境就會出問題。虛擬環(huán)境可以解決以上問題,它會為每一個Python

項(xiàng)目創(chuàng)建一個隔離的開發(fā)環(huán)境,每個開發(fā)環(huán)境所安裝的包和依賴相互獨(dú)立,可以確保項(xiàng)目的開發(fā)環(huán)境互不干擾。每個項(xiàng)目都有一個獨(dú)立的虛擬環(huán)境(virtual

environment)。虛擬環(huán)境并不是什么新技術(shù),主要是利用了操作系統(tǒng)中環(huán)境變量以及進(jìn)程間環(huán)境隔離的特性,從計(jì)算機(jī)中獨(dú)立開辟出來的一個虛擬化環(huán)境,可以將這部分獨(dú)立環(huán)境視為一個容器,在這個容器中可以只安裝需要的依賴包,各個容器之間互相隔離、互不影響。在激活虛擬環(huán)境時,激活腳本程序會將當(dāng)前命令行4程序的

PATH

修改為虛擬環(huán)境的路徑,這樣執(zhí)行命令就會在被修改的

PATH

中查找,避免了原本

PATH

可以找到的命令,從而實(shí)現(xiàn)了

Python

環(huán)境的隔離。Python

3.3

之后的版本自帶標(biāo)準(zhǔn)庫venv,可以利用其創(chuàng)建虛擬環(huán)境。第三方工具也可以創(chuàng)建虛擬環(huán)境,如

virtualenv、pipenv、anaconda

等。本節(jié)將學(xué)習(xí)如何使用標(biāo)準(zhǔn)庫venv

創(chuàng)建虛擬環(huán)境。13.1.1 虛擬環(huán)境的創(chuàng)建在Windows

的命令行模式下,標(biāo)準(zhǔn)庫venv

創(chuàng)建虛擬環(huán)境的命令格式如下。python-mvenv

/path/env_name運(yùn)行此命令將創(chuàng)建目標(biāo)目錄(父目錄若不存在也將創(chuàng)建),并放置一個pyvenv.cfg

文件在其中,該文件中有一個

home

鍵,它的值指向運(yùn)行此命令的

Python

安裝(目標(biāo)目錄的常用名稱是.venv)。它還會創(chuàng)建一個Scripts

子目錄,其中包含Python

二進(jìn)制文件的副本或符號鏈接(視創(chuàng)建環(huán)境時使用的平臺或參第

13

虛擬環(huán)境與程序打包發(fā)布5數(shù)而定)。它還會創(chuàng)建一個初始為空的lib\site-packages

子目錄。創(chuàng)建虛擬環(huán)境的步驟如下。在D

盤根目錄創(chuàng)建myenvs

目錄,用于保存虛擬環(huán)境。在

Windows

的命令行模式下,

執(zhí)行命令:

python

-m

venvd:/myenvs/myenv1。執(zhí)行以上命令后,D

盤myenvs

目錄下創(chuàng)建的虛擬環(huán)境myenv1

如圖

13.1所示。圖

13.1虛擬環(huán)境myenv1

內(nèi)容6如果要創(chuàng)建指定Python

版本的虛擬環(huán)境,首先要安裝相應(yīng)版本的Python,然后找到其安裝目錄,在安裝目錄下執(zhí)行虛擬環(huán)境創(chuàng)建命令,這樣就完成了指定版本Python

虛擬環(huán)境的創(chuàng)建,步驟如下。安裝指定版本Python

環(huán)境。本書安裝的是Python

3.11

版本。在Windows

的命令行模式下,執(zhí)行py

-0p

或where

python

命令,輸出各個版本的Python

安裝路徑列表。在

執(zhí)

python -m venvd:/myenvs/myenv311。執(zhí)行以上命令后,D

盤myenvs

目錄下創(chuàng)建的虛擬環(huán)境myenv311

如圖13.2

所示。第

13

虛擬環(huán)境與程序打包發(fā)布7圖

13.2 虛擬環(huán)境myenv311

內(nèi)容虛擬環(huán)境的使用虛擬環(huán)境的激活首先在Windows

下運(yùn)行cmd.exe(或powershell)程序進(jìn)入命令行模式,然后在虛擬環(huán)境的指定文件夾

Scripts

下運(yùn)行命令

activate.bat(

或activate.ps1),當(dāng)命令提示符內(nèi)的指針前方增加了虛擬環(huán)境名稱時,說明成功激活進(jìn)入了虛擬環(huán)境,如圖

13.3

所示。8圖

13.3 激活并進(jìn)入虛擬環(huán)境myenv311在虛擬環(huán)境下安裝包例如,當(dāng)要進(jìn)行

Web

應(yīng)用程序的開發(fā)時,首先要安裝

Web

框架(Flask

等),在激活的虛擬環(huán)境下執(zhí)行命令:pip

install

flask。執(zhí)行命令后,site-packages目錄下就增加了Flask

框架的相關(guān)文件。查看虛擬環(huán)境下安裝的包在虛擬環(huán)境下,執(zhí)行命令:pip

list。執(zhí)行命令后會顯示虛擬環(huán)境下已經(jīng)安裝的包信息,如圖

13.4

所示。第

13

虛擬環(huán)境與程序打包發(fā)布9圖

13.4 虛擬環(huán)境下已經(jīng)安裝的包信息4.

保存和復(fù)制虛擬環(huán)境在虛擬環(huán)境下,執(zhí)行命令:pip

freeze。執(zhí)行命令后會以

requirements

文件格式顯示虛擬環(huán)境下已經(jīng)安裝的包信息,如圖

13.5

所示。10圖

13.5

requirements

文件格式顯示包信息在虛擬環(huán)境下,執(zhí)行命令:pip

freeze

>

requirements.txt。執(zhí)行命令后將已安裝的包信息存入requirements.txt

文件中,這樣就保存了虛擬環(huán)境。把

requirements.txt

文件復(fù)制到其他虛擬環(huán)境下,然后在激活虛擬環(huán)境下執(zhí)行命令:pip

install-r

requirements.txt。執(zhí)行命令后就復(fù)制了與原來一樣的虛擬環(huán)境。第

13

虛擬環(huán)境與程序打包發(fā)布115.

退出虛擬環(huán)境在虛擬環(huán)境下,執(zhí)行命令:deactivate。執(zhí)行命令后即可退出虛擬環(huán)境。6.

改變虛擬環(huán)境所指向的實(shí)際Python

環(huán)境用記事本打開虛擬環(huán)境下的配置文件pyvenv.cfg,將

home

后面的路徑改為實(shí)際Python

環(huán)境的python.exe

文件路徑即可,如圖

13.6

所示。圖

13.6改變虛擬環(huán)境的指向127.

刪除虛擬環(huán)境通過Windows

命令直接刪除虛擬環(huán)境目錄即可刪除虛擬環(huán)境。虛擬環(huán)境的結(jié)構(gòu)實(shí)際環(huán)境實(shí)際環(huán)境結(jié)構(gòu)如圖

13.7

所示。lib

目錄下有第三方庫的安裝目錄site-packages

和標(biāo)準(zhǔn)庫,python.exe

解釋器文件與pip.exe

等其他文件不在一個目錄下。圖

13.7實(shí)際環(huán)境結(jié)構(gòu)第

13

虛擬環(huán)境與程序打包發(fā)布132.

虛擬環(huán)境虛擬環(huán)境結(jié)構(gòu)如圖

13.8

所示。虛擬環(huán)境中沒有標(biāo)準(zhǔn)庫的內(nèi)容,應(yīng)用中與實(shí)際環(huán)境共用標(biāo)準(zhǔn)庫。虛擬環(huán)境的

python.exe

解釋器文件與pip.exe

等其他文件均在scripts

目錄下。圖

13.8 虛擬環(huán)境結(jié)構(gòu)

13.2 程序打包與發(fā)布Python

的軟件包一開始沒有官方的標(biāo)準(zhǔn)分發(fā)格式,后來不同的工具開始引入一些比較通用的歸檔格式,但是這些格式都不是官方支持的,存在元數(shù)據(jù)和14包結(jié)構(gòu)彼此不兼容的問題。為解決這個問題,PEP427

定義了新的分發(fā)包標(biāo)準(zhǔn),名為Wheel

標(biāo)準(zhǔn)。pip

等打包工具都支持這個標(biāo)準(zhǔn)。Python

程序打包一方面是構(gòu)建成Python

庫;另一方面是打包成

exe

可執(zhí)行文件。雖然庫是

Python

中常常提及的概念,但事實(shí)上

Python

中的庫只是一種對特定功能集合的統(tǒng)一說法,而非嚴(yán)格定義。Python

庫的具體表現(xiàn)形式為模塊(module)和包(package),Python

庫的構(gòu)建工具有很多,如

distutils、setuptools

等。將

Python

文件打包成

exe

文件也有多種工具可以選擇,如PyInstaller、py2exe

等。下面先介紹模塊和包的構(gòu)建,然后介紹distutils

和PyInstaller

打包工具的使用,并介紹如何發(fā)布第三方庫。13.2.1 模塊的構(gòu)建與使用Python

模塊本質(zhì)上是一個包含Python

代碼的.py

文件,模塊名就是文件名。假設(shè)現(xiàn)有文件demo.py,該文件中包含程序段P13.1。第

13

虛擬環(huán)境與程序打包發(fā)布15P13.1

demo.pydefadd(x,y):return

x+y那么demo.py

就是一個Python

模塊。利用import

語句或form-import

語句在當(dāng)前程序中導(dǎo)入模塊,便可在當(dāng)前程序中使用模塊內(nèi)包含的代碼。例如,在當(dāng)前程序中使用demo

模塊中定義的add()函數(shù),示例代碼如程序段P13.2

所示。P13.2

導(dǎo)入

demo

模塊示例importdemores=test.add(11,22)print(res)運(yùn)行代碼,輸出結(jié)果如下。1633模塊既能被導(dǎo)入其他程序中使用,也可以作為腳本直接使用。實(shí)際開發(fā)中,為了保證模塊實(shí)現(xiàn)的功能與預(yù)期相符,開發(fā)人員通常會在模塊文件中添加一些測試代碼,對模塊中的功能代碼進(jìn)行測試。以

demo.py

文件為例,示例如程序段P13.3

所示。P13.3

模塊測試def

add(x,y):return

x+yif

name

==

'

main

':res=

add(11,22)print("函數(shù)

add(x,y)測試:x+y=%d"%res)當(dāng)解釋器直接執(zhí)行以上文件時,便可執(zhí)行文件中if

語句后面的測試代碼,第

13

虛擬環(huán)境與程序打包發(fā)布17測試add()函數(shù)的功能。如果在其他文件中把以上文件作為模塊導(dǎo)入,則不會執(zhí)行測試代碼。這個測試設(shè)計(jì)利用了模塊的

name

屬性,當(dāng)模塊作為主模塊運(yùn)行時,

name

取值為“

main

”,當(dāng)模塊不作為主模塊運(yùn)行時,

name

取值為“模塊名”。所以,代碼中的條件語句只有在模塊是主模塊運(yùn)行時才執(zhí)行測試代碼。這樣既達(dá)到了測試模塊功能的目的,又不影響模塊的使用。13.2.2 包的構(gòu)建與使用當(dāng)一個項(xiàng)目中有很多個模塊時,就需要再進(jìn)行組織。將功能類似的模塊放到一起就形成了包。本質(zhì)上,包就是一個包含

init

.py

文件的文件夾,如圖13.9

所示。18圖

13.9 package

包結(jié)構(gòu)包下面可以包含模塊,也可以再包含子包(subpackage),就像文件夾中可以有文件,也可以有子文件夾一樣,如圖

13.10

所示。(a)

package

包結(jié)構(gòu)圖

13.10(b)

package_a

子包結(jié)構(gòu)包結(jié)構(gòu)圖在圖

13.10

中,package

是上層的包,下面有一個子包

package_a,每個包中都有

init

.py

文件。假設(shè)導(dǎo)入模塊demo_a1.py,3

種導(dǎo)入語句格式和使用語句格式分別如下。第

13

虛擬環(huán)境與程序打包發(fā)布19格式一:import

package.package_a.demo_a1。在使用時,必須加完整名稱來引用:package.package_a.demo_a1.fun_a1()。格式二:frompackage.package_a

import

demo_a1。在使用時,可以直接使用模塊名引用:demo_a1.fun_a1()。格式三:from

package.package_a.demo_a1

import

fun_a1。在使用時,可以直接使用函數(shù)名或類名引用:fun_a1()。當(dāng)使用from

package

import

item

這種語法格式時,item

可以是包、模塊,也可以是函數(shù)、類、變量。當(dāng)使用

import

item1,

item2

這種語法格式時,item

必須是包或模塊。導(dǎo)入包的本質(zhì)其實(shí)是“導(dǎo)入了包的

init

.py”文件。也就是說,“importpackage”意味著執(zhí)行了包package

下面的

init

.py

文件。

init

.py

有以下

3

個核心作用。(1)

作為包的標(biāo)識,不能刪除。20(2)

用來實(shí)現(xiàn)模糊導(dǎo)入。(3)

導(dǎo)入包實(shí)質(zhì)是執(zhí)行

init

.py

文件,可以在

init

.py

文件中進(jìn)行包的初始化、統(tǒng)一執(zhí)行代碼、批量導(dǎo)入等操作。在package

包下的

init

.py

文件中寫入代碼如程序段P13.4

所示。P13.4

init

.py

文件import

mathprint("已導(dǎo)入

package

包")在package

包同級目錄的demo.py

文件中寫入代碼如程序段P13.5

所示。P13.5

測試

init

.py

文件執(zhí)行importpackageprint(package.math.pi)運(yùn)行代碼,輸出結(jié)果如下。第

13

虛擬環(huán)境與程序打包發(fā)布21已導(dǎo)入

package

包3.141592653589793通過以上測試可以看出,Python

非常巧妙地通過

init

.py

文件將包轉(zhuǎn)換成了模塊的操作,因此,可以說“包的本質(zhì)是模塊”。庫的構(gòu)建Python

中的第三方庫是由Python

用戶自行編寫和發(fā)布的模塊或包。同樣地,用戶也可以將自己編寫的模塊和包作為庫發(fā)布。庫的構(gòu)建與發(fā)布步驟如下。在與待發(fā)布的包同級的目錄中創(chuàng)建setup.py

文件。以圖

13.9

所示的包package

為例,此時的目錄結(jié)構(gòu)如圖

13.9

所示。編輯setup.py

文件,在該文件中設(shè)置包中包含的模塊,示例代碼如程序段P13.6

所示。P13.6

構(gòu)建庫22fromdistutils.coreimport

setupsetup(name='a',version='0.1.0',description='package

a',author=

'wzh',py_modules=

['a.a1','a.a2'])(3)

setup.py

文件所在目錄下打開命令行,使用

Python

命令構(gòu)建Python

庫,具體如下。pythonsetup.py

build命令行執(zhí)行以上命令,輸出信息如圖

13.11

所示。第

13

虛擬環(huán)境與程序打包發(fā)布23圖

13.11 構(gòu)建庫的輸出信息輸出顯示構(gòu)建成功。構(gòu)架完成后,目錄結(jié)構(gòu)如圖

13.12

所示。(a)

目錄結(jié)構(gòu)圖

13.12(b)

構(gòu)建的庫構(gòu)建的目錄結(jié)構(gòu)24在圖

13.12

中,build

目錄下的lib

文件夾就是通過Python

命令構(gòu)建的庫。(3)

在setup.py

文件所在目錄下打開命令行,使用Python

命令創(chuàng)建庫的安裝包,具體如下。pythonsetup.py

sdist創(chuàng)建完成后,目錄結(jié)構(gòu)如圖

13.13

所示。(a)

目錄結(jié)構(gòu)圖

13.13(b)

安裝包創(chuàng)建的安裝包第

13

虛擬環(huán)境與程序打包發(fā)布25在圖

13.13

中,dist

目錄下的.tar

格式的文件就是通過Python

命令生成的庫的安裝包。安裝包可以自己安裝使用,也可以分享給他人或發(fā)布到網(wǎng)絡(luò)平臺。如果自己或他人希望在本地機(jī)安裝此包,則需要復(fù)制壓縮文件包package-0.1.0.tar,然后解壓,進(jìn)入package-0.1.0

目錄,運(yùn)行以下本地安裝命令。pythonsetup.py

install該命令最終會將demo_1.py、demo_2.py

復(fù)制到Python

環(huán)境存放第三方模塊的目錄。安裝成功后,直接使用import

導(dǎo)入即可使用該模塊。還可以在dist

目錄下,執(zhí)行以下命令。pipinstall

.\package-0.1.0.tar此命令也會將demo_1.py、demo_2.py

復(fù)制到Python

環(huán)境存放第三方模塊的目錄。26庫的發(fā)布將自己開發(fā)好的模塊上傳到PyPI

網(wǎng)站上,使其成為公開的資源,可以讓全球用戶自由使用。在PyPI

官網(wǎng)中發(fā)布庫的步驟如下。

PyPI

官網(wǎng)注冊。PyPI

網(wǎng)站:。遠(yuǎn)程上傳發(fā)布。進(jìn)入

setup.py

文件所在目錄,使用命令“pythonsetup.py

sdist

upload”,即可將模塊代碼上傳并發(fā)布。管理發(fā)布的模塊。登錄

PyPI

官網(wǎng),如果模塊已經(jīng)上傳成功,當(dāng)?shù)卿?/p>

PyPI網(wǎng)站后便可在右側(cè)導(dǎo)航欄看到管理入口。單擊包名進(jìn)入后可以對模塊進(jìn)行管理,當(dāng)然也可以從這里刪除模塊。分享第三方庫。模塊發(fā)布完成后,其他人只需要使用pip

就可以安裝模塊文件。如果你更新了模塊,其他人則可以通過

pip

install--upgrade

<模塊第

13

虛擬環(huán)境與程序打包發(fā)布27名>

命令來更新。當(dāng)然,也可以將自己開發(fā)好的模塊上傳到GitHub

網(wǎng)站上,使其成為公開的資源,供全球用戶下載使用。

13.3 PyInstaller

庫打包Python

文件為exe

文件13.3.1

程序打包為exe

文件事實(shí)上,大部分用戶編寫的軟件很少需要發(fā)布到

PyPI

上供眾人下載,通常情況下軟件的使用者都是Windows

用戶,所以將Python

文件打包成一個可執(zhí)行的exe

文件,直接在Windows

系統(tǒng)中運(yùn)行才是主要的打包方式。將Python文件打包成exe

文件有多種工具可以選擇,如PyInstaller、py2exe

等,下面介紹PyInstaller

打包工具的使用方法。PyInstaller

是一個第三方庫,它能夠在Windows、Linux、Mac

OS

X

等操作系統(tǒng)中將

Python

源文件打包,通過對源文件打包,Python

程序可以在28沒有安裝Python

的環(huán)境中運(yùn)行,也可以作為一個獨(dú)立文件,方便傳遞和管理。PyInstaller

可以在Windows、Mac

OS

X

和Linux

系統(tǒng)中使用,但并不是跨平臺的。如果希望打包成exe

文件,則需要在Windows

系統(tǒng)中使用PyInstaller進(jìn)行打包工作;如果希望打包成

mac

app,則需要在

Mac

OS

系統(tǒng)中使用PyInstaller

進(jìn)行打包工作。本節(jié)學(xué)習(xí)使用PyInstaller

將Python

文件打包成exe文件的方法。PyInstaller

庫的常用參數(shù)及其功能如表

13-1

所示。表

13-1 PyInstaller

庫的常用參數(shù)及其功能參數(shù)名功能描述-h,-help查看該模塊的幫助信息-F,-onefile產(chǎn)生單個的可執(zhí)行文件-D,-onedir產(chǎn)生一個目錄(包含多個文件)作為可執(zhí)行程序-d,-debug產(chǎn)生debug

版本的可執(zhí)行文件第

13

虛擬環(huán)境與程序打包發(fā)布29-a,-ascii不包含unicode

字符集支持-w,-windowed,-noconsol指定程序運(yùn)行時不顯示命令行窗口(

僅對Windows

有效)-c,-nowindowed-console,指定使用命令行窗口運(yùn)行程序(僅對

Windows

有效)-o

DIR,-out=DIR指定spec

文件的生成目錄。如果沒有指定,則默認(rèn)使用當(dāng)前目錄來生成spec

文件-p

DIR,-path=DIR設(shè)置Python導(dǎo)入模塊的路徑(與設(shè)

置PYTHONPATH

環(huán)境變量的作用相似)。也可使用路徑分隔符(Windows

使用分號,Linux

使用冒號)來分隔多個路徑-n NAME ,-name=NAME指定項(xiàng)目(產(chǎn)生的spec)名字。如果省略該選項(xiàng),那么第一個腳本的主文件名將作為spec

的名字30表中列出的只是

PyInstaller

模塊所支持的常用選項(xiàng),

如果需要了解PyInstaller

選項(xiàng)的詳細(xì)信息,則可通過pyinstaller

-h

來查看。13.3.2 PyInstaller

工具打包Python

文件為exe

文件PyInstaller

工具的命令語法如下。pyinstaller

選項(xiàng)參數(shù) xxx.py無論項(xiàng)目源程序是單文件的應(yīng)用,

還是多文件的應(yīng)用,

只要在使用PyInstaller

命令時編譯作為程序入口的Python

源程序即可。下面先創(chuàng)建一個app

目錄,在該目錄下創(chuàng)建一個app.py

文件,文件中包含的代碼如程序段P13.7

所示。P13.7

app.pydef

main():第

13

虛擬環(huán)境與程序打包發(fā)布31print('程序開始執(zhí)行')print(‘你好,歡迎來到

Python

課堂!’)if

name

==

'

main

':main()然后,使用命令行工具進(jìn)入app

目錄,執(zhí)行如下命令。pyinstaller-F

app.py執(zhí)行上面的命令,將看到詳細(xì)的生成過程。當(dāng)生成完成后,app

目錄下將會多一個

dist

目錄,并在該目錄下將會有一個

app.exe

文件,這就是使用PyInstaller

工具生成的exe

可執(zhí)行程序。在命令行窗口中進(jìn)入dist

目錄,在該目錄下執(zhí)行app.exe,將會看到該程序生成如下輸出結(jié)果。程序開始執(zhí)行32你好,歡迎來到

Python

課堂!該程序沒有圖形用戶界面,如果讀者試圖通過雙擊來運(yùn)行該程序,則只能看到程序窗口一閃就消失了,這樣將無法看到該程序的輸出結(jié)果。上面的命令中使用了-F

選項(xiàng),該選項(xiàng)指定生成單獨(dú)的exe

文件,因此,在dist

目錄下生成了一個單獨(dú)的大約為

6MB

app.exe

文件(在

Mac

OS

X平臺上生成的文件就叫app,沒有后綴);與-F

選項(xiàng)對應(yīng)的是-D

選項(xiàng)(默認(rèn)選項(xiàng)),該選項(xiàng)指定生成一個目錄(包含多個文件)作為程序。下面先將PyInstaller

工具

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論