python打包到pypi小結

   若是你寫了一個python庫,想讓別人快速使用你的庫,最簡單的方式就是使用python官方出品的庫託管網站pypi了。

   pypi的全稱是Python Package Index,是python的一個軟件倉庫。pypi能夠幫助你找到和安裝由社區開發和共享的python庫。包的做者可使用pypi來分發和共享其所開發的python庫。以下圖1是pypi的首頁,能夠看到pypi已經擁有近30w的用戶以及超過16w的項目。

圖1:pypi首頁

   1.通常來講,你發佈的庫中須要有一個setup.py文件,該文件主要包括庫的各類信息,好比描述,做者,依賴以及各個模塊等等。setup.py的編寫能夠參考以下資料:

若是你的python項目比較複雜,包含了多個層級的複雜的模塊,你能夠參考下面的blog來編寫setup.py的packages選項html

附我的項目NetCloud的setup.py示例:python

#!/usr/bin/env python
# coding=utf-8
from setuptools import setup

setup(
    name="NetCloud",
    version="1.0.2",
    description='''網易雲音樂綜合爬蟲,能夠實現:
                    1.對於網易雲音樂評論以及用戶信息的爬取,而且可視化展現;
                    2.支持模擬登陸,提供包括音樂,歌手,歌單,dj等全方位的api支持''',
    author='lyrichu',
    author_email='lyrichu@foxmail.com',
    url = "http://www.github.com/Lyrichu/NetCloud",
    maintainer='lyrichu',
    maintainer_email='lyrichu@foxmail.com',
    packages=['netcloud.analyse','netcloud.crawler',
              'netcloud.login','netcloud.util',
              'netcloud.demo','netcloud.test'],
    package_data={'netcloud.util': ['source/*']},
    install_requires=[
        'pycrypto',
        'requests',
        'pyecharts',
        'pandas',
        'jieba',
        'wordcloud',
        'scipy'
        ]
)

上面編寫的setup.py中尤爲須要注意的是packagespackage_data兩個參數,這兩個參數分別決定了python庫模塊的結構以及資源文件的打包。

   2.編寫好了setup.py文件以後,可使用

python setup.py install

命令將pyhton庫安裝到本地,可是若是須要將庫上傳到pypi進行託管的話,則須要將庫代碼以及資源文件進行統一打包,打包通常有多種打包格式,常見的有源碼包(.tar.gz文件)和預編譯跨平臺包(.whl文件),源碼包以及預編譯包的打包命令以下:

# 源碼包,這會獲得一個.tar.gz的文件
python setup.py sdist build
# 預編譯包,這會獲得一個.whl的文件
python setup.py bdist_wheel --universal

   3.上傳到pypi

在你上傳打包文件到pypi以前,你應該先去註冊一個pypi的帳號。這個很簡單,直接去官網註冊就能夠了。上傳到pypi有兩種方式:

  • 使用setuptools工具,具體命令以下:
# 上傳源碼包
python setup.py sdist upload
# 上傳預編譯包
python setup.py bdist_wheel upload
  • 使用twine工具git

    簡單來講,相比setuptools,twine是一個更加安全和強大的pypi包發佈工具,具體介紹和用法能夠參考官方文檔。

    twine 上傳到pypi的命令以下:

# 首先安裝twine
sudo pip install twine
# 上傳打包好的文件到pypi
twine upload dist/*

twine上傳的過程當中會提示你輸入pypi的用戶名和密碼,直接按照提示輸入便可。正常狀況下你就能夠成功發佈你的pyhton庫了。
發佈完成以後,你就可使用pip命令安裝你本身的庫了,你能夠試着安裝並測試一下你的庫在本機是否能夠正常工做。github

相關文章
相關標籤/搜索