python打包發(fā)布pypi及更新全部流程
發(fā)布
1. 安裝打包依賴工具
pip install setuptools
2. 安裝上傳工具
pip install twine
3. 注冊PYPI官網(wǎng)個人用戶
4. 在和項目同級目錄創(chuàng)建setup.py
代碼如下:
from setuptools import setup, find_packages GFICLEE_VERSION = '2020.8.4.6' setup( name='cfastproject', version=GFICLEE_VERSION, packages=find_packages(), include_package_data=True, entry_points={ "console_scripts": ['cfastproject = fastproject.main:main'] }, install_requires=[ "django", "fastapi", "gcp_mixed_logging", "asgi_request_id", "uvicorn", "google-cloud-secret-manager", "pandas", "peewee_async", "aiopg", "aiohttp" ], url='https://github.com/ChuXiaoYi/fastproject', license='GNU General Public License v3.0', author='Xiaoyi Chu', author_email='895706056@qq.com', description='More convenient to create fastapi project' )
setup參數(shù)說明:
名稱 | 描述 | 說明 |
---|---|---|
name | 項目名稱 | 不可重復(fù) |
version | 項目版本 | 保證每次發(fā)布都是版本都是唯一的 |
packages | 項目本身的代碼 | |
include_package_data | 是否包括非包文件 | |
entry_points | 項目主入口 | 安裝成功后,在命令行輸入cfastproject 就相當(dāng)于執(zhí)行了fastproject.main.py中的main()了 |
install_requires | 項目依賴包 | |
url | 項目地址 | |
license | license | |
author | 項目作者 | |
author_email | 項目郵箱 | |
description | 項目描述 |
5. 打包前檢查
通過這一步可以檢查setup.py中是否有錯誤,例如版本號錯誤
python setup.py check
6. 打包
python setup.py sdist
7. 發(fā)布前準(zhǔn)備
在home目錄下創(chuàng)建.pypirc 文件,寫入pypi賬戶密碼,這樣每次上傳就不需要在重復(fù)輸入了
[distutils] index-servers = pypi [pypi] username:username password:password
本地測試
python setup.py install
安裝成功后,可以通過上面定義的命令執(zhí)行一次,如果成功證明安裝成功,可以繼續(xù)打包了
8. 注冊
上傳前需要注冊一下包的名稱,因為這個名稱必須獨一無二,如被占用則注冊不通過。
python setup.py register
9. 檢查是否符合pypi要求
twine check dist/**_.tar.gz
10. 上傳
twine upload dist/**_.tar.gz
上傳成功后,到官網(wǎng)上搜索看看包有木有吧~
更新
1. 更新代碼
并修改setup.py中的版本號
2. 更新包
python setup.py sdist bdist
3. 上傳
twine upload dist/**_.tar.gz
4. 更新包
pip install --upgrade cfastproject
關(guān)于上傳非包文件
在setup.py
同級目錄下創(chuàng)建MANIFEST.in
文件,里面的內(nèi)容是需要上傳的文件
例如,如果要包括項目下的所有文件:
recursive-include fastproject *
為了將這些文件在安裝時復(fù)制到site-packages中的包文件夾,需要將setup中的include_package_data設(shè)置為True
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python opencv實現(xiàn)圖片旋轉(zhuǎn)矩形分割
這篇文章主要為大家詳細(xì)介紹了python opencv實現(xiàn)圖片旋轉(zhuǎn)矩形分割,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07在pycharm創(chuàng)建scrapy項目的實現(xiàn)步驟
這篇文章主要介紹了在pycharm創(chuàng)建scrapy項目的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12通過python的matplotlib包將Tensorflow數(shù)據(jù)進(jìn)行可視化的方法
今天小編就為大家分享一篇通過python的matplotlib包將Tensorflow數(shù)據(jù)進(jìn)行可視化的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01PyQt5實現(xiàn)進(jìn)度條與定時器及子線程同步關(guān)聯(lián)
這篇文章主要為大家詳細(xì)介紹了PyQt5如何實現(xiàn)進(jìn)度條與定時器及子線程的同步關(guān)聯(lián),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01