版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建省南平市渭田中學(xué)高二語文下學(xué)期期末試卷含解析
- 福建省南平市太平中學(xué)高一數(shù)學(xué)理測試題含解析
- 2學(xué)會寬容(說課稿)統(tǒng)編版道德與法治六年級下冊
- 榮耀之路模板
- 專為電銷行業(yè)定制勞動協(xié)議樣本(2024年)版B版
- 外包采購分包合同(2篇)
- 復(fù)合手術(shù)室項(xiàng)目合同(2篇)
- 多平臺同步推廣合作協(xié)議
- 軟件技術(shù)開發(fā)合同完整協(xié)議范文
- 20《精彩極了和糟糕透了》說課稿-2024-2025學(xué)年五年級上冊語文統(tǒng)編版
- 廣西欽州市浦北縣2023-2024學(xué)年七年級上學(xué)期期末語文試題
- 技術(shù)服務(wù)補(bǔ)充協(xié)議范本
- 內(nèi)河避碰條例題庫
- 四年級數(shù)學(xué)(四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案
- 促進(jìn)自然分娩資料課件
- 人際風(fēng)格的類型
- 醫(yī)院科室宣傳方案
- 高壓變頻器培訓(xùn)教材
- 《中國居民膳食指南》
- 立式氣液分離器計(jì)算
- 《有機(jī)熱載體爐》課件
評論
0/150
提交評論