看到了很多把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/*
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)