Python學習手冊之__main__ 模塊,常用第三方模塊和打包發布


在上一篇文章中,我們介紹了 Python 的 元組拆包、三元運算符和對 Python 的 else 語句進行了深入講解,現在我們介紹 Python 的 __main__ 模塊、常用第三方模塊和打包發布。
查看上一篇文章請點擊:https://www.cnblogs.com/dustman/p/10057482.html

__main__ 模塊
大多數 Python 代碼要么是導入的模塊,要么是執行某些任務的腳本。但是,有時需要使一個文件既可以作為模塊導入,也可以作為腳本運行。

def sayHello(): str = "hello"
 print(str) if __name__ == "__main__": print('This is main of module "hello.py"')

運行結果:

>>>
This is main of module "hello.py"
>>>

當 Python 解釋器讀取源文件時,它會執行它在文件中找到的所有代碼。在執行代碼之前,它定義了一些特殊的變量。
例如,如果 Python 解釋器將該模塊 (源文件) 作為主程序運行,它將一個特殊的 __name__ 變量設置為字符串值 "__main__"。如果該文件是從另一個模塊導入的,__name__ 將設置為該模塊的名稱。
如果我們把上一個例子的代碼使用一個文件名為 cmd.py 保存,使用名字 cmd 可以導入到另一個腳本作為一個模塊。
cmd.py

def sayHello(): str = "hello"
 print(str) if __name__ == "__main__": print('This is main of module "hello.py"')

cmd_hello.py

import cmd cmd.sayHello()

運行結果:

>>>
hello
>>>
我們創建了一個模塊 cmd 並通過另外的腳本來調用。

常用第三方模塊
除了內建的模塊外,Python 還有大量的第三方模塊。
Django 是 Python 最常用的 Web 框架,它支持 instagramDisqus等網站運行。它有許多非常有用的特性,並且它缺少的特性都可由它的擴展包來滿足。CherryPyFlask 同樣也是非常流行的 Web 框架。
如果要從網上爬取數據 BeautifulSoup 模塊將幫你省很多力氣,這比用正則表達式構建自己的數據提取規則要好得多。

雖然 Python 提供了以編程方式訪問網站 (如 urllib) 的模塊,但它們的使用非常麻煩。使用第三方庫 request 會使 HTTP 請求變得更加容易。

有許多第三方模塊可以幫助 Python 實現科學和數學計算。matplotlib 模塊允許你使用 Python 來創建 2D 圖形。模塊 Numpy 允許使用比原生 Python 解決方案快得多的多維數組,同時它還包含執行數學操作的函數,例如對數組的矩陣轉換。模塊 SciPy 包含對 NumPy 功能的很多擴展。
Python 同樣可以用來做游戲開發,它通常被用來作為使用其它語言編寫有些的腳本語言,但也可以用來自己制作游戲。

Panda 3D 模塊幫助你建立 3D 游戲,pygame 幫助你建立 2D 游戲。

打包發布
在 Python 中,打包一詞是指將您編寫的模塊以標准格式編寫,以使其他程序員能夠輕松地安裝和使用它們。這涉及到模塊、setuptools 和 distutils 的使用。
打包的第一步是正確組織文件。將要放入庫中的所有文件放在同一個父目錄中。該目錄還應該包含一個名為 __init__.py 的文件,該文件可以是空的,但必須存在與目錄中。這個目錄放在另一個包含自述文件和許可文件的目錄下,同時還有一個非常重要的文件 setup.py。目錄結構如下。
Foo/
|-- bin/
| |-- foo
|
|-- foo/
| |-- tests/
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
|
|-- docs/
| |-- conf.py
| |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README
簡要解釋一下:
    1、 bin/: 存放項目的一些可執行文件,當然你可以起名script/之類的也行。
    2、 foo/: 存放項目的所有源代碼。(1) 源代碼中的所有模塊、包都應該放在此目錄。不要置於頂 層目錄。(2) 其子目錄tests/存放單元測試代碼; (3) 程序的入口最好命名為                      main.py。
    3、 docs/: 存放一些文檔。
    4、 setup.py: 安裝、部署、打包的腳本。
    5、 requirements.txt: 存放軟件依賴的外部Python包列表。
    6、 README: 項目說明文件。

您可以根據需要在目錄中放置很多的 Python 腳本文件。

下一步是在 setup.py 文件里寫打包指令,里面包含了軟件包所需的信息,以便將其上傳到 PyPI 並通過 pip 安裝。

from distutils.core import setup setup( name='cmd', version='1.0', description='sdk for di input , output and param', author='ZS', author_email='ZS@qq.com', url='', license='No License', platforms='python 3.7', py_modules=['factory'], package_dir={'': 'pack'}, packages=['lib', 'common.http'] )

創建 setup.py 文件后,可將其上傳到 PyPI 上,或使用命令行構建二進制的發行版 (可執行安裝程序)。
要構建一個發行版,請使用命令行進入到包含 setup.py 的目錄,並運行命令 python setup.py sdist 創建源碼分發包,Windows 下可運行 python setup.py bdist_wininst 來構建二進制的發行版。
使用 python setup.py register 注冊賬號,使用 python setup.py sdist upload 上傳大家可下載的發行版。
前面介紹了是其他 Python 程序員使用的模塊打包方法。如果你的用戶不是程序員,那么他的計算機大多數沒有安裝 Python。因此,需要將腳本打包為相關平台 (如 Windows) 的可執行文件。
在 Windows 平台上,有許多工具可用於將 Python 腳本轉換為可執行文件。py2exe 可以用來將 Python 腳本和它所需的庫打包到單個可執行文件中,你也可以用 PyInstallercx_Freeze

對於 Linux Max 用戶來說這是不必要的,因為大多數用戶都安裝了 Python

 

 

 

 “一些人總是找無數理由放棄自己想做的事情,實際上他們只需要一個理由放手去做。” -- 瑪莎·葛蘭姆


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM