将python工程打包为.whl格式的package

​ 看到了很多把python工程打包为.exe的方法介绍,但是没有最新的一些打包为.whl供pip直接下载安装的教程,这里结合2015年的打包方法介绍一下如何将python工程打包为.whl包并上传:

**(1)**在需要打包的工程文件夹外面再建立一个同名文件夹,结构如下,此处示例工程名为:

packagedemo
	|-----setup.py
	|-----setup.cfg
	|-----README.rst
	|-----packagedemo
			|-----__init__.py
			|-----main.py

**(2)**在上图目录中新建文件setup.py,setup.cfg,README.rst,其中setup.py是最为重要的文件,包含了打包的参数和基本信息,setup.cfg是setup.py的配置文件,README.rst用于项目介绍。

**(3)**打开setup.py,输入以下内容:

import os
import setuptools

setuptools.setup(
	name = 'packagedemo',
	version = '1.0',
	keywords = 'demo',
	description = 'A demo for python packaging',
	long_description = open(
		os.path.join(
			os.path.dirname(__file__),
			'README.rst'
		)
	).read(),
	author = 'your name',
	author_email = 'xxxxx@xxx.com'
	
	url = 'http://xxx/xxxx/packagedemo',
	packages = setuptools.find_packages(),
	license = 'MIT'
)

​ name:即项目名称,本例为packagedemo

​ version:自己设置的版本号

​ keywords:描述项目的关键字

​ description:项目简介

​ long_description:项目详细简介

​ author:作者名称

​ author_email:作者邮箱

​ url:项目的homepage

​ packages:项目包括的python package,setuptools.find_packages()可以自动找出包含的package

​ license:如MIT,APACHE,GNU等

**(4)**采用pip可安装source distribution(sdist)和wheel这两种格式python package,如果二者同时存在,pip会优先选择wheel。根据application包含的的代码类型以及所支持的python版本,wheel格式可以细分为三种:

​ Universal wheel: 纯 python代码,并且支持 python 2和3
​ Pure python wheel: 纯python代码,不同时支持 python2和3
​ Platform wheel: 非纯python 代码

采用如下命令可编译为Universal wheel:

python setup.py bdist_wheel --universal

采用如下命令可编译为非Universal wheel(即第二种和第三种):

python setup.py bdist_wheel

此外,还可以通过如下命令编译为sdist文件:

python setup.py sdist

**(5)**现在要将打包好的工程上传到pypi,首先要安装twine:

 pip install twine

在pypi创建一个账户,并把packagedemo.egg-info/PKG-INFO上传至pypi submit用于注册该项目。之后在Wndows用户目录下创建.pypirc文件,输入以下内容:

[distutils]
index-servers = pypi

[pypi]
repository = https://upload.pypi.org/legacy/
username = <username>
password = <password>

其中用户名和密码填写自己pypi账户的名字和密码。

最后使用如下命令上传package:

twine upload dist/*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值