python封裝介紹_談python3的封裝

這章給大家介紹,如何封裝一個簡單的python庫

首先創建一個以下型式的文件結構

rootFile/setup.py

example_package/

__init__.py

example_module.py

example_package2/

__init__.py

example_module.py

其中的兩個__init__.py可以是一個空文件,但是它是導入package所必需的文件,用來,所以請務必創建,__init__.py中可以編寫Python代碼,但是不建議這么做,因為實際的邏輯可以在模塊中實現,__init__.py應盡量輕。

輸入在你的python文件中分別添加以下內容

#rootFile/example_package/example_module.py:

classmodule_class:def __init__(self):pass

defprint_hello():print('This is my first module')

myName= 'jobsofferings'

defprintMyName():print(myName)

#rootFile/example_package/example_package2/example_module.py:

classmodule_class:def __init__(self):pass

defprint_hello():print('This is my second module')

myName= 'jobsofferings'

defprintMyName():print(myName)

#setup.py:

importsetuptools

setuptools.setup(

name="rootFile",

version="0.0.1",

author="jobsofferings",

author_email="youremail@xxx.com",

description="example package",

packages=['example_package','example_package.example_package2'],

)

name是程序包的名稱。該名稱可以是任何名稱,只要僅包含字母、數字、 _ 和 - 。若您想將此程序包上傳至pypi.org,請務必使用您的用戶名進行更新,因為這樣可以確保您不會嘗試上傳與上傳軟件包時已經存在的軟件包名稱相同的軟件包。

version是軟件包的版本。

author和author_email用于標識軟件包的作者,分別用來標明作者名稱與郵箱。

description是該軟件包的簡短描述。

long_description是程序包的詳細說明。這在Python軟件包索引的軟件包詳細信息軟件包中顯示。在這種情況下,通常的模式是從README.md加載詳細描述。

long_description_content_type告訴索引用于長描述的標記類型,在此情況下,它是Markdown語言

packages是應該包含在分發軟件包中的所有Python導入軟件包的列表。無需手動列出每個程序包,我們可以使用find_packages()自動發現所有程序包和子程序包。以上示例我們使用了手動列出的方式。

classifiers為您的軟件包提供額外信息。

這時候,我們就可以著手將我們的package打包了

進入管理員環境下的命令行工具中,進入rootFile文件夾位置,可以復制下這個文件地址,cd進入。執行:

Python setup.py install

若命令行中打印出的信息顯示無誤,則您的package已經打包完成,我們在同一磁盤的其他文件夾中創建一個test.py進行測試

#test.py:

importexample_package.example_module as module1importexample_package.example_package2.example_module as module2

module1.module_class.print_hello()

module1.printMyName()print(module1.myName)

module2.module_class.print_hello()

module2.printMyName()print(module2.myName)

運行test.py

輸出:

>>> This ismy first module>>>jobsofferings>>>jobsofferings>>> This ismy second module>>>jobsofferings>>> jobsofferings

則說明您的package已經打包完成,由于通過包管理工具setuptools發布,您可以在您的python安裝目錄下找到這個打包文件,后綴為.egg,但egg包不一定是擴展名是egg的,其實在linux里面是不區分擴展名的。在理想情況中,egg 是一個使用zip 壓縮的文件,類似于java中的jar包,其中包括了所有需要的包文件。

您也可以在rootFile下找到這個egg文件,但事實上將dist文件夾刪掉之后,還是可以使用這個package,因為import導入的搜索路徑為程序主目錄、PYTHONPATH目錄、標準鏈接庫目錄、.pth文件目錄,所以程序會到您的python安裝目錄下找到這個打包文件。

進入命令行工具中,輸入where python可以找到您的python安裝路徑,進入./Lib/site-packages,在這個文件夾中就可以看到您的打包文件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533779.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533779.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533779.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

go語言調用c 的頭文件 so,golang 學習(10): 使用go語言調用c語言的so動態庫-Go語言中文社區...

一、前言最近在學習go,因為需要調用c語言打包成的so動態庫里面的方法,避免自己再去造輪子,所以想直接使用golang調用so,但是參考了其他博客大佬寫的,我每一步原封不動的寫下來,結果都是一堆錯誤&#xff0c…

log nginx 客戶端請求大小_Nginx日志分析和參數詳解

本文檔主要介紹Nginx設置日志參數的作用,以及Nginx日志常用分析命令基本大綱:1.Nginx日志記錄格式的介紹2.Nginx日志參數詳解3.Web服務流量名詞介紹4.Nginx日志常用分析命令示范一:Nginx日志記錄格式的介紹log_format用來設置日志的記錄格式&…

python函數的封裝調用_Python封裝一個函數來打印到變量

如果我有一個包含大量打印語句的函數: 即. def funA(): print "Hi" print "There" print "Friend" print "!" 我想做的是這樣的事情 def main(): ##funA() does not print to screen here a getPrint(funA()) ##where get…

android 開機動畫 漸變,[Parallax Animation]實現知乎 Android 客戶端啟動頁視差滾動效果...

前言Parallax Scrolling (視差滾動),是一種常見的動畫效果。視差一詞來源于天文學,但在日常生活中也有它的身影。在疾馳的動車上看風景時,會發現越是離得近的,相對運動速度越快,而遠處的山川河流只是緩慢的移動著&…

js訪問對方手機文件夾_求JS大神幫我寫個利用JS來實現手機端和PC端訪問自動選擇樣式文件代碼...

展開全部現在比較流行的辦法是 一個網站2套代碼,一套是手機一套pc,在網站首頁開e68a84e8a2ad3231313335323631343130323136353331333363353735頭寫上一段識別各瀏覽器的判斷方法,根據結果引入不同的樣式詳細判斷如下:var browser{…

python可以做計量分析嗎_技術分享 - python數據分析(2)——數據特征分析(上)...

1 分布分析 分布分析能揭示數據的分布特征和分布類型。對于定量數據,欲了解其分布形式是對稱的還是非對稱的,發現某些特大或特小的可疑值,可通過繪制頻率分布表、繪制頻率分布直方圖、繪制莖葉圖進行直觀地分析;對于定性分類數據&…

android lrc 歌詞顯示,Android歌詞 AndroidLrc歌詞

[ti:Android][ar:川畑要][al:0][by:黃病病][00:00.00][00:01.69]Android[00:07.51]歌手:川畑要[00:10.96]作詞:Kaname Kawabata[00:12.64]作曲:UTAKaname Kawabata[00:14.06]BY:黃病病[00:15.80][00:15.66]一際目を引くまるでandroid[00:23.1…

web前端開發技術期末考試_Web前端開發技術期末試題1

絕密★啟用前Web前端開發技術期一、單項選擇題(本大題共25小題,每小題1分,共25分)1.網頁制作工具按照其工作方式可分為( )A.HTML語言和非HTML語言兩大類B.DHTML方式和JavaScript方式兩大類C.標注型網頁制作工具和所見即所得型網頁制作工具兩大類D.基于Wi…

matlab的7.3版本是什么_樂建工程寶V6.3版本升級說明公告

尊敬的樂建工程寶客戶:您好!為了給客戶提供更加優質的產品和服務,我司已于2019年11月20日開始樂建工程寶V6.3版本升級服務。目前,Android系統各應用市場已基本審核完畢,iOS系統已上傳AppStore,目前蘋果官方…

魅族android 版本 6.0下載,flyme6.0內測版

由魅族開發的全新安卓系統flyme6.0系統固件已經到來,相對于Flyme 5系統有了眾多改變和提升,全新的智能服務系統,多達400于項全新功能,同時讓操作界面更加簡潔,易于操作,而系統運行速度也將有所提升&#xf…

origin設置不同區域的顏色_[測試狗]Origin入門教程(二十四):效率翻倍小技巧——修改默認字體...

在使用Origin的時候,對于每次繪圖都需要更改字體覺得很麻煩,因為Origin默認的字體為Arial,但是我們常用的字體一般為Times New Roman,在下拉框的很底部,每次更改都很浪費時間。那為什么不把他設置成默認字體呢&#xf…

cgi web 調用多次啟動_全面了解CGI、FastCGI、PHPFPM

一、拋個磚1、Web Server傳遞數據的方法正式說CGI之前,先來了解一下Web Server傳遞數據的另外一種方法:PHP Module加載方式。相信都會想起Apache吧,初學php時,在windows上安裝完php和Apache之后,為了讓Apache能夠解析p…

android群英傳神兵利器pdf,《Android群英傳:神兵利器》勘誤

1勘誤一晃,我的新書《Android群英傳:神兵利器》上市好多天了,有不少朋友已經拿到書了。本來以為,這次我看了不下十遍,再加上編輯們的校對,應該不會有很多勘誤了吧~ 可事實證明,我還是太年輕啊!大…

datatype未定義是什么意思_TypeError:無法讀取未定義的屬性'then'

loginService.islogged()上面的函數返回一個像“失敗”的字符串 . 但是,當我嘗試運行然后對它運行時,它將返回錯誤TypeError: Cannot read property then of undefined并且光標在 connected 之后和 .then 之前指示 .以下是完整功能:var conne…

python運行命令_對python中執行DOS命令的3種方法總結

1. 使用os.system("cmd") 特點是執行的時候程序會打出cmd在Linux上執行的信息。 import os os.system("ls") 2. 使用Popen模塊產生新的process 現在大部分人都喜歡使用Popen。Popen方法不會打印出cmd在linux上執行的信息。的確,Popen非常強大&a…

android studio 不生成buildconfig,Android Studio Update 0.4.0找不到buildConfig()

將Android Studio升級到版本0.4.0后,出現了一個新錯誤:我通過gradle-wrapper.properties升級到gradle 1.9distributionUrlhttp\://services.gradle.org/distributions/gradle-1.9-all.zip并升級了build.gradle中的gradle版本dependencies {classpath com…

譚民機器人_機器人視覺伺服研究進展-中科院自動化所-譚民.

文章編號:100220446(2004 0320277206機器人視覺伺服研究進展Ξ王麟琨,徐德,譚民(中國科學院自動化研究所復雜系統與智能科學實驗室,北京100080摘要:,針對當前機器人視覺伺服所面臨的主要問題, .關鍵詞:機器人;視覺伺服;綜述中圖分類號::Survey of R esearch on Robotic Visual …

mysql 按月和年累加_廣西柳州市市場監管局公布市2020年11月(第一批)電梯按需維保試點名單...

中國質量新聞網訊 根據《柳州市改進電梯維護保養模式試點工作方案》,近日,廣西柳州市市場監管局公布柳州市首批按需維保試點電梯名單,冠亞藍灣國際小區和南慶安置小區共46臺電梯成為首批試點電梯,標志著柳州市全面啟動了按需維保改…

python默認深拷貝_Python 深拷貝與淺拷貝

首先分享Python里面的數據類型1、不可變類型:Number(數字)、String(字符串)、Tuple(元組)。不可變數據類型在第一次聲明賦值的時候, 會在內存中開辟一塊空間, 用來存放這個變量被賦的值, 而這個變量實際上存儲的, 并不是被賦予的這個值, 而是存放這個值所在空間的內…

上傳 mp4 格式判斷_視頻如何轉換成通用的MP4格式?按下這個鍵,10秒就能搞定...

我們在網上下載視頻的時候,有很多的視頻都是無法播放的,或者是需要特定的播放器才可以播放。其實,只要把這些視頻的格式轉換成通用的MP4格式即可。如果你還不知道怎么轉換視頻格式,下面就教大家兩個小方法,百試百靈。一…