Skip to content

Instantly share code, notes, and snippets.

@MonsterRob
Created March 6, 2019 02:52
Show Gist options
  • Save MonsterRob/36098892a808312c30804ac547584449 to your computer and use it in GitHub Desktop.
Save MonsterRob/36098892a808312c30804ac547584449 to your computer and use it in GitHub Desktop.
上传工具:twine
安装:pip install twine
项目更目录建立setup.py文件(最低要求)
setup.cfg setup 可选参数文件
README.md/README.rst 项目介绍文件
MANIFEST.in 数据文件清单(非代码)
LICENSE.txt 授权文件
<your package>
项目结构如下:
<项目目录>:
<package>
setup.py
MANIFEST.in(optional)
LICENSE.txt(optional)
README.md(optional)
setup.cfg(optional)
setup() args
name: 项目名(并非包名,导入时使用的是包名,下载使用项目名)
version: '0.0.1' 版本号
description:''
long_description: ''
long_description_content_type:''
url:'' (项目网站)
author: '' (作者)
author_email: ''(作者联系邮箱)
license: ''(许可授权)
classifiers: [] (分类 https://pypi.org/classifiers/)
keywords: ''
project_urls = {key:url} (项目其他链接)
packages=find_packages(exclude=['contrib', 'docs', 'tests*'])(项目包 核心内容)
py_modules=['xxxx','bbb'] (独立与包之外的模块)
install_requires=['peppercorn'] 项目依赖
install_requires=[
'A>=1,<2',
'B>=2'
]
python_requires='>=3', (Python 最低版本要求)
python_requires='>=2.6, !=3.0.*, !=3.1.*, !=3.2.*, <4',
package_data={
'sample': ['package_data.dat'],
}, 包数据文件,pacakge 之内
data_files=[('my_data'(相对于安装环境的目录), ['data/data_file'])(相对于项目跟路径的文件路径列表)], 数据文件,在package 之外
包含package 文件的三种方式:
1 include_package_data=True(MANIFEST.ini)配合使用
2 package_data 关键字
3 exclued_package_data
entry_points={
'console_scripts': [
'sample=sample:main',
],
} 命令行
entry_points={
'console_scripts': [
'flask = flask.cli:main',
],
}命令行
项目打包命令:
python setup.py sdist
python setup.py bdist_wheel --universal
python setup.py bdist_egg
项目上传
1 PyPI 创建账户
2 建立$HOME/.pypirc (上传时不用手动写账户密码)
.pypirc
[pypi]
repository = 'https://test.pypi.org/legacy/'
username = <username>
password = <password>
3 上传:
twine upload dist/*
参考:
https://setuptools.readthedocs.io/en/latest/setuptools.html
https://packaging.python.org/guides/distributing-packages-using-setuptools/#keywords
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment