1. 程式人生 > >Python輪子打包whl檔案

Python輪子打包whl檔案

一、安裝setuptools庫

pip install setuptools

二、編寫setup.py檔案和__init__.py檔案,整理程式碼結構

首先注意目錄的架構

其中print1.py和print2.py是要打包的python程式碼,pagtest是一給資料夾,要把程式碼結構整理成如下的格式:

pagtest/
    __init__.py
    print1.py
    print2.py
setup.py
README.txt

__init__.py檔案可以為空

READDME.txt為介紹檔案

setup.py引數介紹:

name : 打包起來的包的檔名
version : 版本號,新增為打包檔案的字尾名
author : 作者
author_email : 作者的郵箱
py_modules : 打包的.py檔案
packages: 打包的python資料夾
include_package_data : 專案裡會有一些非py檔案,比如html和js等,這時候就要靠include_package_data 和 package_data 來指定了。package_data:一般寫成{‘your_package_name’: [“files”]}, include_package_data還沒完,還需要修改MANIFEST.in檔案.MANIFEST.in檔案的語法為: include xxx/xxx/xxx/.ini/(所有以.ini結尾的檔案,也可以直接指定檔名)
license : 支援的開源協議
description : 對專案簡短的一個形容
ext_modules : 是一個包含Extension例項的列表,Extension的定義也有一些引數。
ext_package : 定義extension的相對路徑
requires : 定義依賴哪些模組
provides : 定義可以為哪些模組提供依賴
data_files :指定其他的一些檔案(如配置檔案),規定了哪些檔案被安裝到哪些目錄中。如果目錄名是相對路徑,則是相對於sys.prefix或sys.exec_prefix的路徑。如果沒有提供模板,會被新增到MANIFEST檔案中。

例如: 

from setuptools import setup
setup(name='Qingolddriving',
      version='1.0',
      description='A olddriver',
      author='Qingtai',
      author_email='[email protected]',
      packages=['Qingolddriver'],
      )

三、生成whl檔案:

cd到該目錄執行命令

cd /d F:

python setup.py bdist_wheel