做logo網(wǎng)站的公司做網(wǎng)站找哪家好
我們開發(fā)的python軟件包如果想發(fā)布到網(wǎng)上,可以讓其他人通過pip install下載,一般是把軟件包發(fā)布到PYPI平臺。
PYPI準(zhǔn)備
我們要現(xiàn)在pypi注冊登錄一下
文件組織架構(gòu)
一般的python軟件包的文件組織架構(gòu)為包名文件夾+__init__.py+程序,包文件夾的同級有setup.py
.
│ LICENSE
│ README.md
│ setup.py
│
├─.github
│ └─workflows
│ publish-to-pypi.yml
│
└─package_nameproject.py__init__.py
這里我們要額外加一個.gituhb/workflows的文件夾,存儲Action配置文件
配置Action
atcion文件示例如下
name: Publish Python 🐍 distributions 📦 to PyPIon:release:types: [published] # This will trigger the workflow only when a new release is publishedjobs:build-n-publish:name: Build and publish Python 🐍 distributions 📦 to PyPIruns-on: ubuntu-22.04steps:- uses: actions/checkout@v2- name: Set up Pythonuses: actions/setup-python@v2with:python-version: '3.10'- name: Install pypa/buildrun: python -m pip install build- name: Build a binary wheel and a source tarballrun: python -m build --sdist --wheel . --outdir dist/- name: Install twinerun: python -m pip install twine- name: Publish distribution to PyPIenv:TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}run: twine upload dist/*
這里定義了在虛擬環(huán)境中的操作,打包然后利用twine發(fā)布包到pypi。
注意這里需要在倉庫中配置secret:Settiing -> Secrets and vairables -> Action ->?Repository secrets -> New 然后點擊新建兩個變量,分別取名PYPI_USERNAME和PYPI_PASSWORD,其中的value分別對應(yīng)我們的pypi用戶名和密碼。
如果賬戶配置了雙重認證,就得去pypi申請一個API:在pypi官網(wǎng)點擊自己的用戶名,選擇Account settings,拉到最下面申請API
不能用用戶名和密碼登錄了相應(yīng)的代碼也要一些修改
env:TWINE_USERNAME: __token__TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
pypi中還需要配置一個信任的來源,填寫你的倉庫和包的信息
Action我們設(shè)置的是在倉庫發(fā)布relase之后觸發(fā),所以我們需要先提交一個release
發(fā)布release之后action就會自動觸發(fā)然后推送我們的包到pypi了