写完项目之后,操作如下:
文章目录
一、发布前的打包准备
项目结构如下:
- 项目包
- examples等
- codes等
- setup.py
- REAMDE.md
步骤一:修改项目的__init__.py文件
# -*- coding: utf-8 -*-
from .code import fun_1,fun_2 # 把所有对外的方法、类都导入到这里
__version__ = "0.1.0" # 版本号
__all__ = [
fun_1,
fun_2,
]
步骤二:新建setup.py文件
这一步主要用于配置打包的内容
from setuptools import setup
with open("README.md", "r", encoding="utf-8") as f:
long_description = f.read()
setup(
name="项目名称",
version="版本号",
keywords=["关键词1","关键词2"],
description="简要的描述",
long_description=long_description,
long_description_content_type="text/markdown",
author="作者",
author_email="作者邮箱",
url="https://github.com/项目地址", # github项目连接
license="MIT License", #
packages=["chinese_permanent_calendar"],
install_requires=[ # 依赖包
"pandas", # panda包存在即可
"numpy >= 1.0", # numpy包要求版本 >1.0
"Django >= 1.11, != 1.11.1, <= 2", # 要求Django包版本在1.11至2之间,同时不等于1.11.1
],
classifiers=[ # 其他配置项
"License :: OSI Approved :: MIT License",
# "Programming Language :: Python :: 2", # 注意现在的项目当有依赖包时支持python2是很危险的,不建议这样
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
],
package_data={ # 配置除了python代码外的其他数据、文件,会一起打包
'项目文件目录': ['data.csv','*.pkl'],
}
)
步骤三:打包项目
进入到setup.py
同目录,运行下面的三种打包方式之一即可(推荐第二种与第三种),当然打包成多个不同的后缀也可:
-
在
disk/
目录下生成项目名称.egg
的文件,可以使用easy_install
安装python setup.py bdist_egg
-
(推荐)在
disk/
目录下生成项目名-版本号.tar.gz
的文件,支持 pippython setup.py sdist
打包后如果怕线上翻车,可以打开另一个python项目中安装:
pip install 项目名-版本号.tar.gz
,然后尝试调包与使用,测试没问题后开始上传 -
打包为
wheel
文件python setup.py bdist_wheel
二、发布项目
步骤一:注册pypi账号密码
进入网站:https://pypi.org/
,注册一个账号,记住账号与密码
步骤二:安装发布工具与发布
在当前项目安装发布工具twine
:pip install -i https://mirrors.aliyun.com/pypi/simple/ twine
然后就可以发布,由于打包后都会在dist/
文件夹下,所以我们只需要把这个文件夹下的内容发布即可:
twine upload dist/*
输入用户名、密码后即可传输完成!