详解Python打包分发工具setuptools
简介
setuptools 是 Python 中用来打包和分发代码的工具。它可以方便的管理依赖、安装、升级、卸载等操作。本文将详细介绍使用 setuptools 进行打包分发的完整攻略,包括安装、配置、打包、上传到 PyPI 等内容,并提供两个示例说明。
安装
使用 setuptools 需要先安装它。可以使用 pip 进行安装:
pip install setuptools
配置
在编写 Python 代码时,需要添加一个 setup.py 文件来配置打包的相关信息。示例:
from setuptools import setup
setup(
name='example',
version='0.1',
author='Your Name',
author_email='your.email@example.com',
packages=['example'],
install_requires=[
'requests',
'beautifulsoup4',
],
)
上面的配置文件指定了包名、版本、作者、依赖等信息。
打包
在完成配置后,可以使用 setuptools 进行打包。可以通过以下命令进行打包:
python setup.py sdist bdist_wheel
上面的命令会生成一个 dist 目录,其中包含了打包好的文件。
上传到 PyPI
如果要将代码上传到 PyPI 上进行分享和分发,可以使用 twine 工具。先使用 pip 安装 twine:
pip install twine
然后执行下面的命令进行上传:
twine upload dist/*
示例
下面提供两个示例:一个是简单的 Python 程序,另一个是 Python 包。
示例1:简单的 Python 程序
如下是一个简单的 Python 程序。假设文件名为 example.py。
import requests
response = requests.get('https://www.example.com')
print(response.text)
将上面的代码保存到 example 目录下,然后编写 setup.py 文件:
from setuptools import setup
setup(
name='example',
version='0.1',
author='Your Name',
author_email='your.email@example.com',
py_modules=['example'],
install_requires=[
'requests',
],
)
执行以下命令进行打包:
python setup.py sdist bdist_wheel
最终会生成 dist/example-0.1-py3-none-any.whl 和 dist/example-0.1.tar.gz 两个文件。如果想上传到 PyPI,使用下面的命令:
twine upload dist/*
示例2:Python 包
下面是一个示例 Python 包。假设文件夹名为 my_package。
my_package/
setup.py
my_package/
__init__.py
module1.py
module2.py
其中,init.py 文件内容如下:
from .module1 import MyClass1
from .module2 import MyClass2
module1.py 文件内容如下:
class MyClass1:
pass
module2.py 文件内容如下:
class MyClass2:
pass
编写 setup.py 文件:
from setuptools import setup, find_packages
setup(
name='my_package',
version='0.1',
author='Your Name',
author_email='your.email@example.com',
packages=find_packages(),
)
执行以下命令进行打包:
python setup.py sdist bdist_wheel
最终会生成 dist/my_package-0.1-py3-none-any.whl 和 dist/my_package-0.1.tar.gz 两个文件。如果想上传到 PyPI,使用下面的命令:
twine upload dist/*
结语
以上就是使用 setuptools 进行打包分发的完整攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python打包分发工具setuptools - Python技术站