首頁 > 軟體

Python中如何使用pip安裝自己的第三方模組

2020-06-16 17:29:05

系統:CentOS6.8    Python版本:python3.5

  文字編輯器:vim

  python中我們很多時候,需要將自己的py檔案匯入到python路徑中,但是我們自己的檔案自身並不在python預設的庫檔案路徑下,這時候就需要我們自己將我們的py檔案import進入了

  下面範例怎麼匯入自己的第三方模組,我們首先需要自己建立一個.py檔案,名字隨意明名了,但是不要和python內部模組重命,內部模組路徑在/usr/lib/python3.5/site-packages。要不然使用python提供的一些模組的方法時就悲劇了。

  我們寫程式碼看看一個列表是否是含有列表巢狀,如果有巢狀,就拆開輸出,環境python3,命名為liname.py

#!/usr/bin/env python3    def print_list(the_list):              傳出一個列表引數

        for item in the_list:          挨個遍歷列表元素

            if isinstance(item,list):      判斷每個元素是否為列表

                print_list(item)      呼叫自身做

            else:

                print(item)  我們想要將這個.py檔案變成一個模組,我們可以使用Python包索引(Python Package Index,PyPI)這 樣一個網際網路中第三庫的集中管理,我們首先建立一個目錄,名字還是隨意啊,比如就叫dog

  在這個目錄中建立一個名字為setup.py的檔案,檔案內容如下所示:

  現在dog這個目錄中已經包含了兩個檔案setup.py和lsname.py這個檔案,我們在終端中輸入命令:

  python3 setup.py sdist  ,然後目錄下會多出幾個檔案和目錄,如圖所示 

然後我們使用命令: python3 setup.py install 安裝

  然後我們再python3的互動式命令列下匯入模組,輸入一個列表,然後呼叫,會觸發下列異常

  這是因為我們的python的主程式中的程式碼模組與一個名為__main__的名稱空間關聯,將程式碼放在其單獨的模組中時,python會自動建立與模組同名的名稱空間。因此我們的模組中的程式碼會與一個名為liname的名稱空間關聯

  我們剛進入到python的互動式命令列的時候是和__main__這個名稱空間相關聯的,我們想要使用liname這個空間的print_list方法時不能單純的使用這個函數,而需要這樣使用liname.print_list()這樣子使用,比如:

這樣子就完全沒有問題了。

  如果我們自己本身寫了一段很好的程式碼,想將它貢獻出去,除了github外,我們可以放在pypi這個網站上,也就是我們使用pip或者easy_install這樣的命令安裝

  我們先在PyPI網站上(http://pypi.python.org/),來註冊我們的資訊

  註冊完成後我們就開始向PyPI上傳我們的程式碼,上傳時我們要知道我們註冊時的賬號和密碼,因為接下來會用到

  因為我沒什麼好的程式碼貢獻所以,後面的步驟略去,進行完了這些步驟,我們就可以上傳了,

我們使用命令:python3 setup.py upload

  至此我們自己寫的程式碼就貢獻給了PyPI社群,別人如果想要安裝我們這個模組,就可以通過pip或者easy_install這種方式來安裝我們的模組了

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-11/137015.htm


IT145.com E-mail:sddin#qq.com