Python的setuptools详解【3】打包wheel并提交给pypi
一、說明
????????上文說,如何用setup.py打包成egg包,繼而又有find_package()函數用法,本篇專門介紹,如何用setuptools打包成不同的軟件包。
????????首先需要保證你有最新版的setuptools?和wheel
python -m pip install --user --upgrade setuptools wheel二. 打包模塊
# 進入到setup.py同級的目錄下 python setup.py sdist bdist_wheel????????打包之后多出兩個文件夾,分別是hello.egg-info和dist。hello.egg-info是必要的安裝信息,而dist中的壓縮包就是安裝包
????????dist中包含兩個文件:
dist/ |-- hello-1.0-py3-none-any.whl `-- hello-1.0.tar.gz三、其它打包方式????????
????????有了上面的 setup.py 文件,我們就可以打出各種安裝包,主要分為兩類:sdist 和 bdist。
3.1 帶源發布格式(Source distribution)
????????使用 sdist發布,需要用戶下載源碼,編譯安裝。好處是本地編譯,更符合本地電腦環境,支持的壓縮格式有:
| zip | zip file (.zip) | Windows 默認 |
| gztar | gzip’ed tar file (.tar.gz) | Unix 默認 |
| bztar | bzip2’ed tar file (.tar.bz2) | |
| xztar | xz’ed tar file (.tar.xz) | |
| ztar | compressed tar file (.tar.Z) | |
| tar | tar file (.tar) |
3.2 sdist 的實現語句:
$ python setup.py sdist --formats=gztar,zip????????現在目錄下多出 dist 和 *.egg-info 目錄,dist 內保存了我們打好的包,上面命令使用?--formats?指定了打出?.tar.gz?和?.zip?包,如果不指定則如上表根據具體平臺默認格式打包。
????????包的名稱為?setup.py?中定義的?name,?version以及指定的包格式,格式如:firstApp-0.0.1.tar.gz。
3.3 建制發布格式包 Built distribution
????????使用 bdist 可以打出 built distribution,和源碼包相比,由于預先編譯好結果,所以安裝更快,但缺點是,安裝后容易發生環境沖突:
| gztar | gzipped tar file (.tar.gz) | Unix 默認 |
| bztar | bzipped tar file (.tar.bz2) | |
| xztar | xzipped tar file (.tar.xz) | |
| ztar | compressed tar file (.tar.Z) | |
| tar | tar file (.tar) | |
| zip | zip file (.zip) | Windows 默認 |
| rpm | RPM | |
| pkgtool | Solaris pkgtool | |
| sdux | HP-UX swinstall | |
| wininst | self-extracting ZIP file for Windows | |
| msi | Microsoft Installer. |
3.4?bdist語句格式
????????同 sdist 類同,可以使用?--formats?指定包格式。如:
$ python setup.py bdist --formats=rpm3.5 簡化的便捷打包指令
同時為了簡化操作,setuptools 提供了如下命令:
| bdist_dumb | tar, gztar, bztar, xztar, ztar, zip | Windows 默認 zip, Unix 默認 gztar |
| bdist_rpm | rpm, srpm | |
| bdist_wininst | wininst | |
| bdist_msi | msi |
所以上面打 rpm 包可以使用:
$ python setup.py bdist_rpm四、上傳到Pypi
此時前置打包的步驟已經完成,可以開始進行上傳。
4.1.利用twine將包上傳上去,首先安裝twine
pip install twine4.2.注冊 PyPI 賬號
登錄?PyPI · The Python Package Index,注冊賬號
4.3 上傳到PyPI倉庫
1) # 使用 upload $ twine upload dist/* 輸入 username 和 password 即上傳至 PyPI。2) # 如果不想每次輸入賬號密碼,可以在home目錄下創建 .pypirc 文件,內容如下:[distutils] index-servers =pypipypitest[pypi] username: password: [pypitest] repository: https://test.pypi.org/legacy/ username: password:4.4? 檢驗
這時候就可以,下載包,然后運行里面方法了
4.5? 更新版本
更新版本也很簡單,只需要修改setup.py下的version
然后重新生成檔案,上傳
參考文章:
Python打包之setuptools - 我用python寫Bug - 博客園
python 包管理工具 setuptools 詳解_whatday的專欄-CSDN博客_python setuptools
總結
以上是生活随笔為你收集整理的Python的setuptools详解【3】打包wheel并提交给pypi的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Gauss-Seidel迭代法的Py
- 下一篇: Halcon初学者知识:用set_pai