小编典典
从简单开始
最简单的一文件包:
MyProject/
setup.py
my_package.py
最简单的setup.py:
from setuptools import setup
setup(name='MyProject',
version='0.1',
author='Your Name',
author_email='your.name@example.com',
license='MIT',
description='Example package that says hello',
py_modules=['my_package'])
包含额外的文件包
接下来,您可能应该添加一个自述文件:
MyProject/
MANIFEST.in
README.rst
setup.py
my_package.py
注意新文件-MANIFEST.in。它指定源分发中应包含哪些非Python文件:
include *.rst
人们会告诉您“哦,跳过清单,只要将文件添加到源代码管理中,setuptools就会找到它们”。忽略该建议,它太容易出错。
使PyPI页面有用
使README.rst在Python Package Index上供人们在线查看非常有用。所以改变你的setup.py来做
from setuptools import setup
with open('README.rst') as f:
readme = f.read()
setup(name='MyProject',
...
description='Example package that says hello',
long_description=readme,
...)
python setup.py --long-description | rst2html
尽早发现ReStructuredText错误。
包中有多个Python模块
一个文件很快就不够用,因此请将其更改为一个包(令人困惑的术语警告:Python包位于目录中,带有__init__ py,而不是可分发的自包含存档中的):
MyProject/
MANIFEST.in
README.rst
setup.py
my_package/
__init__.py
some_module.py
并将setup.py更改为
from setuptools import setup, find_packages
with open('README.rst') as f:
readme = f.read()
setup(name='MyProject',
version='0.2',
author='Your Name',
author_email='your@email',
license='MIT',
description='Example package that says hello',
long_description=readme,
packages=find_packages())
向公众发布
要发布,请确保setup.py中的版本号正确,然后运行
python setup.py sdist register upload
而已。
告诉人们安装它
告诉他们
pip install MyProject
(您在setup.py中指定的名称name与setup()的参数相同)
2020-12-20