首页 > 编程语言 >2023-02-18-python打包

2023-02-18-python打包

时间:2023-10-09 19:26:03浏览次数:45  
标签:02 description python 18 setup py pypi menu

+++
title = "Python打包和上传到pypi"
description = ""
date = 2023-02-18T21:59:09+08:00
featured = false
comment = true
toc = true
reward = true
categories = [
""
]
tags = [
"python"
]
series = []
images = []
+++

教程

用 python 的人都用 pip 安装过包。那么有着开源精神的你,是否也想把自己写的包上传到 pypi 呢?

官方中文教程地址

一个视频教程

更新/发布步骤:

  1. 修改完善 setup.py
  2. 进行本地测试 python setup.py develop
  3. 编译 python3 setup.py sdist
  4. 上传到 pypi twine upload dist/*

新手注意事项

你需要先去 pypi 注册一个账号,给你的包起一个名字(搜一搜没有被占用就行),然后用 pip 在本地安装 twine,这个是用来上传到 pypi 的工具。

目录结构需要注意,你的项目目录结构应该是这样的,要把 setup.py 放在外面:

目录

setup.py 的内容大致如下;可以抄我的,改改名称版本描述就行,非常简单。

import codecs
import os
from setuptools import setup, find_packages

# these things are needed for the README.md show on pypi (if you dont need delete it)
here = os.path.abspath(os.path.dirname(__file__))

with codecs.open(os.path.join(here, "README.md"), encoding="utf-8") as fh:
    long_description = "\n" + fh.read()

# you need to change all these
VERSION = '1.0.2'
DESCRIPTION = 'a ligh weight menu , support both win and mac '
LONG_DESCRIPTION = 'dumb_menu is a ligh weight menu ,support hot key, support both win and mac'

setup(
    name="dumb_menu",
    version=VERSION,
    author="clever chen",
    author_email="",
    description=DESCRIPTION,
    long_description_content_type="text/markdown",
    long_description=long_description,
    packages=find_packages(),
    install_requires=[],
    keywords=['python', 'menu', 'dumb_menu','windows','mac','linux'],
    classifiers=[
        "Development Status :: 1 - Planning",
        "Intended Audience :: Developers",
        "Programming Language :: Python :: 3",
        "Operating System :: Unix",
        "Operating System :: MacOS :: MacOS X",
        "Operating System :: Microsoft :: Windows",
    ]
)

编译成功的话会生成 dist 和 egg-info 两个文件夹,egg-info 是用来记录包的信息的,dist 是用来存放打包好的包的。

编译后的目录结构

然后就可以上传到 pypi 了,最好测试好了再发,因为你不能发重复的版本号。

twine upload dist/*

然后后面再修改和更新的话,参考 更新/发布步骤 即可。

标签:02,description,python,18,setup,py,pypi,menu
From: https://www.cnblogs.com/kasusa/p/17752921.html

相关文章

  • 2023-02-09-使用simple_term_menu创建更好的python菜单
    +++title="用simple_term_menu创建更好的python菜单"description=""date=2023-02-09T16:25:24+08:00featured=falsecomment=truetoc=truereward=truecategories=[""]tags=["python","menu"]seri......
  • 2023-02-09-dbdiagram
    +++title="Dbdiagram.io,数据库设计的好选择"description=""date=2023-02-09T16:01:23+08:00featured=falsecomment=truetoc=truereward=truecategories=[""]tags=["database","free"]series=[]......
  • 2023.10.9——每日总结
    学习所花时间(包括上课):0h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.DIV+CSS;明日计划:学习......
  • python29days
    继承单继承下的属性查找多继承下的属性查找super和mro的使用多态和鸭子类型—————————————————————————————————————————————————面向对象的三大特征:封装,继承,多态什么是继承?继承就是让类和类之......
  • [BJDCTF2020]ZJCTF,不过如此
    原理关于preg_replace\e的代码执行双引号和单引号的区别可变变量解题过程代码审计<?phperror_reporting(0);$text=$_GET["text"];$file=$_GET["file"];if(isset($text)&&(file_get_contents($text,'r')==="Ihaveadream")){echo......
  • LY1380 [ 20231009 NOIP 模拟赛 T1 ] AK 神
    题意给定长度为\(n\)的序列\(S\)。\(A\),\(B\)两人轮流取连续\(k\)个数,保证\(n\equiv1\pmodk\)。\(A\)使最终数字更小,\(B\)使最终数字更大。问取到数的和。Sol直接考虑每次选哪些数,怎么选显然是不好做的。不难发现\(n\equiv1\pmodk\)的条件。题面提示我们......
  • Win10安装VSCode并配置Python环境(完美避开踩过的所有坑)
    安装VScode下载vscode下载链接:https://code.visualstudio.com/Download根据自己的电脑型号下载对应的版本。我下载的是windows/UserInstaller,但是使用时会提示“”。所以,推荐下载SystemInstaller版本。两者区别可以自行百度,或......
  • VS code+python环境部署
    安装VScode下载vscode下载链接:https://code.visualstudio.com/Download根据自己的电脑型号下载对应的版本。我下载的是windows/UserInstaller,但是使用时会提示“”。所以,推荐下载SystemInstaller版本。两者区别可以自行百度,或......
  • 2023-01-05vscode技巧
    csharp程序不能输入用vscode运行csharp默认使用的terminal是不支持输入的,输入没反应需要修改launch.json增加这两行我估计是关闭了什么东西,并且调用系统的terminal,具体就不懂了。"configurations":[{//Formoreinformationaboutthe'console'field,se......
  • 2023-01-06-Regex
    最近工作终于闲了下来,可以上班研究代码。遇到一些需要正则表达式的编程问题,无法解决所以决定个学一下。Regex101-ZH-CN(regexlearn.com)RegexLearn-练习场RegexLearn-cheatsheet练习题简单匹配单词heisinblack.black. 允许匹配任何字符,包括特殊字符和空格......