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

來源:互聯網
上載者:User

標籤:python   import   第三方模組   setup.py   

   系統: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的檔案,檔案內容如下所示:

  650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/89/E6/wKiom1ggw67ThVQNAAA2f4wO3PU932.png" title="捕獲5.PNG" alt="wKiom1ggw67ThVQNAAA2f4wO3PU932.png" />

   現在dog這個目錄中已經包含了兩個檔案setup.py和lsname.py這個檔案,我們在終端中輸入命令:   python3 setup.py sdist  ,然後目錄下會多出幾個檔案和目錄,

   650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/89/E3/wKioL1ggxJrhQ333AABZs6sWCz8636.png" title="捕獲7.PNG" alt="wKioL1ggxJrhQ333AABZs6sWCz8636.png" />  然後我們使用命令: python3 setup.py install 安裝

 650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/89/E6/wKiom1ggxOrA5WWtAAAz4r9tK4s494.png" title="捕獲8.PNG" alt="wKiom1ggxOrA5WWtAAAz4r9tK4s494.png" />

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

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/E3/wKioL1ggxiuwawmnAAAriK1ST08121.png" title="捕獲9.PNG" alt="wKioL1ggxiuwawmnAAAriK1ST08121.png" />

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

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

  650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/89/E3/wKioL1ggzS3AkLS1AAAV1rZayNs417.png" title="捕獲10.PNG" alt="wKioL1ggzS3AkLS1AAAV1rZayNs417.png" />

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

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

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

   650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/89/E6/wKiom1ggzlmA3850AAAsfvM1YUM696.png" title="捕獲11.PNG" alt="wKiom1ggzlmA3850AAAsfvM1YUM696.png" />

   註冊完成後我們就開始向PyPI上傳我們的代碼,上傳時我們要知道我們註冊時的帳號和密碼,因為接下來會用到 650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/E3/wKioL1ggzwjAXXW1AAA1M2VV-sM013.png" title="捕獲12.PNG" alt="wKioL1ggzwjAXXW1AAA1M2VV-sM013.png" />

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

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

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

 

本文出自 “berniem2m” 部落格,請務必保留此出處http://berniem2m.blog.51cto.com/9203249/1870497

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.