IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python 上传项目到PyPI,包括静态数据 -> 正文阅读

[Python知识库]Python 上传项目到PyPI,包括静态数据

写了个系统,想把它上传到PyPI,以后可以直接使用pip install安装使用。

注册账号

在PyPI(https://pypi.org/)上注册账号,Register即可

所需python包要求

  • setuptools
  • wheel
  • twine

项目结构

?

  • module:项目名
  • value***c:包名,包含要运行的主函数
  • other、data、texts:均为需要用到的py文件和静态数据文件,如(.json, .txt...)
  • value***c/__init__.py:最终运行的.py主程序文件夹,要包含该文件,可以为空,作用是指明主函数,否则无法加载
  • README.md:(最终上传未使用,上传到PyPI还涉及到.md的格式转换)
  • setup.py:打包的重要文件,元数据信息
  • LICENSE:可以通过github创建时选择,协议要求
  • MANIFEST.in:静态数据上传需求

setup.py (不能修改名字)

#!/usr/bin/env python
# coding: utf-8
import setuptools

#由于最终README.md还涉及到格式转换,暂未处理,因此,未将该文件上传
# with open("README.md", "r", encoding='UTF-8') as fh:
#     long_description = fh.read()

setuptools.setup(
    name="value***c",      # 包的分发名称,使用字母、数字、_、-
    version="1.5",         # 版本号, 每次上传到PyPI后,版本后不再运行重复,版本号规范:https://www.python.org/dev/peps/pep-0440/   
    author="author",       # 作者名字
    author_email="author@qq.com",    # 作者邮箱
    description="description",      # 包的简介描述
    #long_description=long_description,     # 包的详细介绍(一般通过加载README.md)
    #long_description_content_type="text/markdown", # 和上条命令配合使用,声明加载的是markdown文件
    url="https://github.com/author/value***c/tree/master",    # 项目开源地址
    packages=setuptools.find_packages(),      # 包含在发布软件包文件中的可被import的python包文件。如果项目由多个文件组成,我们可以使用find_packages()自动发现所有包和子包,而不是手动列出每个包
    include_package_data=True,  # 打包包含静态文件标识!!上传静态数据时有用
    classifiers=[                                           # 关于包的其他元数据(metadata)
        "Programming Language :: Python :: 3",              # 该软件包仅与Python3兼容
        "License :: OSI Approved :: MIT License",           # 根据MIT许可证开源
        "Operating System :: OS Independent",               # 与操作系统无关
    ],
    install_requires=['py-L>=0.12.0', 'ter==3.1.0'],  # 指定了当前软件包所依赖的其他python类库。这些指定的python类库将会在本package被安装的时候一并被安装
    python_requires='>=3'
)

?MANIFEST.in 上传静态数据!!!

程序运行常常需要静态数据,如json、txt等文件,此时需要该文件,以及setup.py里面?include_package_data=True?

该项目中,我的数据都放在了data文件夹中,因此,MANIFEST.in文件具体示例如:

include data/*.json

表示还要打包上传data文件夹下的所有.json文件

文件中的静态数据读取路径,可能会和本地存在问题,尽可能使用类似

os.path.join(current_dir, '../data/words.json')  #该语句在other/readWrite.py下运行,要调用data/words.json静态数据文件

的不会出错的路径。

打包,生成软件包文件,需setuptools和wheel

在该项目路径(上面示例为module)下,运行

?python setup.py sdist bdist_wheel

运行结束后,会生成dist目录,包含相应的.whl文件和.tar.gz文件。其中.tar.gz文件是源文件,.whl是软件分发包 (build distribution) ,这两个文件是要上传到PyPI下的;还有value***c.egg-info目录,包含打包链接依赖信息等;以及build文件夹,结构如下:

?上传到PyPI,需twine

在该项目路径(上面示例为module)下,运行

python -m twine upload dist/*

然后根据要求输入PiPI注册的账户和密码即可。

再在PyPI上登录,即可看到自己上传的包了

安装验证 (和其他python包无区别)

  • 方法一:pip install value***c
  • 方法二:进入网页https://pypi.org/project/value***c/#files, 下载.whl文件,进入下载后该文件保存路径,执行pip install ***.whl
  • 方法三:仍进入该网页,下载.tar.gz文件,解压后进入目录,执行python setup.py install?

使用方法

import value***c

value***c.main.function(参数)
#执行的是value***c文件夹下的main.py文件中的function(参数)函数

更新后上传

项目等一系列信息修改,重新打包+上传即可,注意,上传需修改版本号,同时删除旧的不需要的版本,否则安装包时需要加上版本号

python setup.py sdist bdist_wheel

python -m twine upload dist/*

Over...

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:12:00  更:2021-08-09 10:13:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 13:47:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码