最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python將源碼打包成.whl文件的完整指南

 更新時(shí)間:2025年12月30日 08:33:26   作者:程序員愛釣魚  
Python 項(xiàng)目開發(fā)完成后,如何優(yōu)雅地發(fā)布和安裝,今天,我們就來詳細(xì)講解如何將 Python 源碼打包成 .whl 文件(Wheel),并進(jìn)行安裝和分發(fā),希望對(duì)大家有所幫助

Python 項(xiàng)目開發(fā)完成后,如何優(yōu)雅地發(fā)布和安裝?傳統(tǒng)的 python setup.py install 雖然可用,但不夠現(xiàn)代化,也不方便在不同環(huán)境中快速分發(fā)。今天,我們就來詳細(xì)講解如何將 Python 源碼打包成 .whl 文件(Wheel),并進(jìn)行安裝和分發(fā)。

一、為什么選擇 .whl 文件

.whl 是 Python 官方推薦的二進(jìn)制分發(fā)格式,相比傳統(tǒng)的源碼安裝有幾個(gè)優(yōu)勢(shì):

  • 快速安裝:不需要編譯,直接 pip install xxx.whl
  • 跨平臺(tái)(純 Python):如果沒有 C 擴(kuò)展,可以在不同操作系統(tǒng)間通用
  • 規(guī)范標(biāo)準(zhǔn):兼容現(xiàn)代 Python 打包工具,如 pipbuild
  • 可控依賴:打包時(shí)可以指定依賴,安裝時(shí)自動(dòng)拉取

二、項(xiàng)目結(jié)構(gòu)準(zhǔn)備

假設(shè)你的項(xiàng)目名稱是 mypkg,最基礎(chǔ)的目錄結(jié)構(gòu)如下:

mypkg/
├── mypkg/
│   ├── __init__.py
│   └── core.py
├── README.md
├── setup.py        # 傳統(tǒng)方式
└── pyproject.toml  # 現(xiàn)代方式推薦

  • mypkg/:核心代碼
  • setup.py:兼容老項(xiàng)目的打包配置
  • pyproject.toml:現(xiàn)代標(biāo)準(zhǔn)的打包配置

三、現(xiàn)代方式:pyproject.toml 打包

Python 官方推薦使用 PEP 517/518 標(biāo)準(zhǔn),通過 pyproject.toml 來描述構(gòu)建和依賴信息。

1. 安裝打包工具

pip install build wheel setuptools

2. 配置pyproject.toml

[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "mypkg"
version = "0.1.0"
description = "My Python Package"
readme = "README.md"
authors = [
  { name="Your Name", email="you@example.com" }
]
dependencies = []

[tool.setuptools.packages.find]
where = ["."]

3. 構(gòu)建.whl文件

在項(xiàng)目根目錄執(zhí)行:

python -m build

生成結(jié)果在 dist/ 目錄:

dist/
├── mypkg-0.1.0-py3-none-any.whl
└── mypkg-0.1.0.tar.gz

4. 本地安裝測(cè)試

pip install dist/mypkg-0.1.0-py3-none-any.whl

四、傳統(tǒng)方式:setup.py打包

對(duì)于老項(xiàng)目,如果還在用 setup.py,也可以生成 .whl

# setup.py
from setuptools import setup, find_packages

setup(
    name="mypkg",
    version="0.1.0",
    packages=find_packages(),
    install_requires=[],
)

構(gòu)建:

python setup.py bdist_wheel

生成的 .whl 文件同樣在 dist/ 目錄。

五、源碼保護(hù)與加密(可選)

.whl 文件本質(zhì)上仍然包含源碼,如果想防止直接查看 Python 代碼,可以考慮:

方案 1:Cython 編譯

.py → .pyx → .so / .pyd → 打包成 whl

適合核心邏輯不想暴露的商業(yè)項(xiàng)目。

方案 2:PyArmor 混淆

pip install pyarmor
pyarmor gen mypkg/

可以對(duì)源碼進(jìn)行混淆,提高反編譯成本。

六、總結(jié)

  • .whl 是現(xiàn)代 Python 項(xiàng)目的推薦分發(fā)格式
  • 現(xiàn)代方式使用 pyproject.toml + build,簡單快捷
  • 傳統(tǒng)方式 setup.py 依然可用
  • 可選混淆/編譯策略保護(hù)核心源碼

通過打包成 .whl,你可以方便地分發(fā)、安裝和管理 Python 項(xiàng)目,讓用戶體驗(yàn)更流暢,也方便 CI/CD 自動(dòng)化部署。

到此這篇關(guān)于Python將源碼打包成.whl文件的完整指南的文章就介紹到這了,更多相關(guān)Python源碼打包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

鹤岗市| 鸡西市| 巴马| 托克逊县| 邯郸县| 青岛市| 九龙坡区| 吴堡县| 枣强县| 金乡县| 万年县| 盐城市| 雷山县| 东丰县| 聊城市| 库尔勒市| 浦县| 洞头县| 德保县| 宾川县| 桦南县| 醴陵市| 会东县| 北流市| 南安市| 乌兰县| 横山县| 沁源县| 和田市| 论坛| 娄烦县| 平定县| 天气| 南江县| 泰顺县| 兴隆县| 左权县| 湘阴县| 赞皇县| 合肥市| 平遥县|