将Python代码打包成pip包可以方便其他人使用,本文将提供详细攻略。
准备工作
在打包之前需要安装setuptools和wheel库,通过pip安装:
pip install setuptools wheel
创建setup.py文件
创建一个名为setup.py
的文件,内容为:
from setuptools import setup, find_packages
setup(
name='yourpackagename', # 包名
version='0.0.1', # 版本号
packages=find_packages(exclude=['test']), # 包含所有包含__init__.py的目录
url='yourpackageurl', # 包的主页链接
license='MIT', # 授权方式
author='YourName', # 作者姓名
author_email='your.email@example.com', # 作者Email
description='Your package description', # 包的描述信息
classifiers=[ # 包的标签
'Development Status :: 3 - Alpha',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Topic :: Software Development :: Libraries :: Python Modules',
],
install_requires=[
'somepackage>=1.1.0', # 依赖的包及版本号
],
)
其中name、version、author、author_email、description、url和install_requires是必须的字段。classifiers是可选字段,表示包的分类、授权、开发状态、操作系统等信息。
创建README.md文件
打包时需要添加一个README.md文件作为说明文档。
打包
将要打包的文件和setup.py
文件放在同一目录下,使用命令行进入该目录。使用如下命令打包:
python setup.py sdist bdist_wheel
此时会在目录下生成dist目录,其中包含两个文件,一个是使用源码打包生成的.tar.gz文件,另一个是使用wheel打包生成的.whl文件。
发布
到Pypi注册账号,然后使用以下命令上传:
pip install twine
twine upload dist/*
示例说明
下面是两个示例:
示例一
在mysum
文件夹下放置以下代码:
def sum(a, b):
return a + b
接着创建setup.py
文件内容:
from setuptools import setup, find_packages
setup(
name='mysum', # 包名
version='0.0.1', # 版本号
packages=find_packages(exclude=['test']), # 包含所有包含__init__.py的目录
url='https://github.com/username/mysum', # 包的主页链接
license='MIT', # 授权方式
author='YourName', # 作者姓名
author_email='your.email@example.com', # 作者Email
description='My sum package', # 包的描述信息
classifiers=[ # 包的标签
'Development Status :: 3 - Alpha',
'Programming Language :: Python :: 3',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Topic :: Software Development :: Libraries :: Python Modules',
],
)
使用命令行进入mysum
文件夹,打包:
python setup.py sdist bdist_wheel
示例二
在mycalc
文件夹下放置以下代码:
def add(a, b):
return a + b
def sub(a, b):
return a - b
接着创建setup.py
文件内容:
from setuptools import setup, find_packages
setup(
name='mycalc', # 包名
version='0.0.1', # 版本号
packages=find_packages(exclude=['test']), # 包含所有包含__init__.py的目录
url='https://github.com/username/mycalc', # 包的主页链接
license='MIT', # 授权方式
author='YourName', # 作者姓名
author_email='your.email@example.com', # 作者Email
description='My calculator package', # 包的描述信息
classifiers=[ # 包的标签
'Development Status :: 3 - Alpha',
'Programming Language :: Python :: 3',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Topic :: Software Development :: Libraries :: Python Modules',
],
install_requires=[
'numpy>=1.14.5',
],
)
使用命令行进入mycalc
文件夹,打包:
python setup.py sdist bdist_wheel
以上就是将Python代码打包成pip包的完整攻略,包含两个示例说明。