Python代碼如何打包發布?

python代碼打包發布步驟明確且不復雜,主要包括四個關鍵環節。1. 準備項目結構,確保包含模塊代碼、測試文件、readme.md、license和setup.py;2. 編寫setup.py文件,準確填寫項目信息、依賴和分類;3. 使用setuptools和wheel打包,并通過twine上傳至pypi;4. 注意版本號唯一性、依賴完整性、許可證添加及readme顯示問題,避免常見錯誤。

Python代碼如何打包發布?

python代碼打包發布其實不難,但涉及的細節不少。如果你是開發了一個小工具或者庫,想分享給別人用,或者部署到服務器上,打包是最直接的方式。

Python代碼如何打包發布?

1. 準備你的項目結構

在打包之前,先整理好你的項目目錄結構。一個清晰的結構會讓打包過程順利很多。通常推薦這樣的結構:

Python代碼如何打包發布?

my_project/ │ ├── my_package/ │   ├── __init__.py │   └── module.py │ ├── tests/ │   └── test_module.py │ ├── README.md ├── LICENSE └── setup.py
  • my_package 是你寫的模塊代碼。
  • tests 是測試代碼,可選但建議保留。
  • README.md 寫清楚項目的用途、安裝方式和使用示例。
  • LICENSE 聲明許可證類型,比如 MIT 或 apache。
  • setup.py 是打包的核心文件,必須有。

2. 編寫 setup.py 文件

setup.py 是打包的關鍵配置文件,它告訴 Python 怎么處理你的代碼。一個基本的示例如下:

立即學習Python免費學習筆記(深入)”;

from setuptools import setup, find_packages  setup(     name='my_package',     version='0.1.0',     author='Your Name',     author_email='your@email.com',     description='A small example package',     long_description=open('README.md').read(),     long_description_content_type='text/markdown',     url='https://github.com/yourname/yourrepo',     packages=find_packages(),     install_requires=[         'requests',  # 如果依賴第三方庫,寫在這里     ],     classifiers=[         'Programming Language :: Python :: 3',         'License :: OSI Approved :: MIT License',         'Operating System :: OS Independent',     ],     python_requires='>=3.6', )

這個文件內容看起來多,但大多數字段都是模板化的,照著填就行。關鍵是確保 name 和 version 正確,并列出依賴項。

Python代碼如何打包發布?

3. 打包并上傳到 PyPI

打包主要用到兩個工具:setuptools 和 wheel。先安裝它們:

pip install setuptools wheel

然后執行打包命令:

python setup.py sdist bdist_wheel

這會在 dist/ 目錄下生成 .tar.gz 和 .whl 文件。

如果想發布到 PyPI(也就是讓別人能通過 pip 安裝),還需要安裝 twine:

pip install twine

然后上傳:

twine upload dist/*

第一次上傳前,你需要注冊 PyPI 賬號,并設置好 API Token。

4. 注意事項和常見問題

  • 版本號別重復:一旦傳了某個版本號,就不能再傳同名的。每次修改后記得升級版本號。
  • 依賴寫全:不要漏掉依賴庫,否則用戶安裝后會報錯。
  • 許可證別忘:開源項目最好加個許可證,不然別人不敢隨便用。
  • README 顯示問題:上傳到 PyPI 后如果 Readme 沒顯示出來,檢查一下是不是用了不支持的格式或語法。

基本上就這些。整個流程走一遍之后你會發現,打包本身不復雜,但很容易忽略一些小細節,特別是第一次發布的時候。只要按照步驟來,一般都能搞定。

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享