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

将python工程打包为.whl格式的package,第1张

将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 = 
password = 

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

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

twine upload dist/*

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5658860.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存