Lesson 2 PyPI

PyPI

Python Package Index (PyPI,以下就都會使用PyPI為一個關鍵詞)。

The Python Package Index is a repository of software for the Python programming language. 從Python Wiki 節錄下來,目前官方統計總共有86491個Package上傳至PyPI Repository.

Modules

我們在Python的世界裡,基本上會有三種主要的類別的Modules.

  1. 我們自行撰寫的Modules.
  2. 安裝別人(Third-Party)撰寫好的Modules.
  3. 在安裝Python時,已經PreInstalled Modules.

然而Type3就是我們最熟悉的Standard Library,數量之多,我們可以透過Command來得曲目前系統上有提供多少Modules(BIF)給我們使用。

help('modules')

有興趣請在IDLE上鍵入此Command,IDLE就會列出目前所有所提供的Modules有哪些了。

模組(Modules)只是一個包含Python程式碼的文字檔。主要的要求在於它的檔名必須以.py(Python的附檔名)結尾。如果要將我們的函式轉為模組,我們必須要將程式碼存入一個檔案,並將檔案取一個適當名字:

def print_lol (the_list):
    for each_item in the_list:
        print (each_item)

以上簡單的範例我們可以存成nester.py。接著我們會寫一點註解讓人家更了解這個Function(Modules)的目的是什麼,在Python中,常見的註解是使用三引號(Triple quote),所以我們可以把上述的程式碼稍微加工一下。

"""Modules Comment
We can print the list through the print_lol"""
def print_lol (the_list):
"""Functions Comment"""
    for each_item in the_list:
        print (each_item)

Q : 我們怎麼得知Python的Modules路徑在哪?

 A : IDLE會告知我們,我們只需要在IDEL的Terminal 鍵入

import sys
sys.path

如何發行個人套件(Distribution)

如同我們之前所提,我們目前使用到的Modules 其中有一部分就是由個人上傳審查通過而普遍給大家來應用的Modules,以下我們簡約的介紹一下,如何將自己的Modules安裝在自己的本地副本或者把Modules upload到PyPI以便分享給全世界。

  1. 首先將Modules建立一個資料夾.
  2. 在新建的資料夾中建立一個setup.py的檔案.
    from distutils.core import setup
    
    setup (
             name            =  "MyModules"
             version         =  "1.0.0"
             py_modules      = ["MyModules"]
             auther          = "It's me"
             auther_email    = "itsme@itsme.com"
             url             = "http://www.itsme.com"
             description     = "A Simple Sample for my modules"
          )
    [/code

    第一行 我們使用到一個方法來Import Modules,這邊我們從Python的發行套件公用程式匯入setup 函式。
    而在setup(…)中的資料為setup 函式的引數名稱。這邊要注意到,你的Modules Name 就是要發行給大家的Module Name.

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s