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

python模块打包上传pypi


pypi注册

先在pypi.org上注册账户密码,务必牢记

模块尽量都保存在包中,如果要进行模块的定义,首先定义的就是包,

所以每个目录下需要一个__init__.py的文件,可以为空内容,但必须有。

我的包结构:

项目的根目录,保存所有的项目代码
	程序执行文件,main.py,移动程序
	setup.py,打包及其信息说明
		【包】包名,从此处开始到末尾,统称为模块
			__init__.py
			【包】包名
				__init__.py
				【包】包名
					__init__.py
					源文件名.py

这是当时我做的包结构:

PS D:\demo> tree /f   
卷 Data 的文件夹 PATH 列表
卷序列号为 94F1-75D8
D:.
│  main.py
│  setup.py
│
└─qiye
    │  __init__.py
    │
    └─github
        │  __init__.py
        │
        └─io
                game1.py
                __init__.py

在根目录创建 " setup.py " 文件 ( 与 main.py 同级 )
假如在根目录没有setup.py文件,则创建。
包设定

from setuptools import setup,find_packages
setup(
    name = "qiye-game1",       #包的名称
    version = "0.1.1",			#版本
    author = "qiye",    		#作者名
    #url = "qiyenull.github.io", 	网站,不是必要,此网站需要存在且未被占用
    description = "孤独终老",		#包的信息说明
    packages = find_packages("qiye"),   	#打包时,开始的目录
    package_dir = {"":"qiye"},		# 告诉 setuptools 包都在 qiye 下
    package_data = {
    ## 包含 data 文件夹下所有的 *.dat 文件
        "":[".txt", ".info", "*.properties", ".py"],
        "":["data/*.*"],
    },
    # 取消所有测试包
    exclude = ["*.test", "*.test.*", "test.*", "test"]

)

定义完成打包的部署文件后,进行程序的执行,执行时可以设置多种类型的包

建议写main.py文件

import qiye.github.io.game1 as msg
print(msg.get_info())

这样使用时可以快速调用


虚拟环境

使用 pip 下载虚拟环境

pip install virtualenv

可在C:\Program Files\Python38\Lib\venv\scripts\nt找到activate.bat文件
打开cmd,切换到这个目录,执行activate.bat
可以发现成功进入到虚拟环境**VENV_PROMPT**中
请添加图片描述
验证能否正常使用

__VENV_PROMPT__C:\Program Files\Python38\Lib\venv\scripts\nt>pip list

如果正常,会显示已安装的python模块名和版本,即可正常使用


打包上传

在虚拟环境下来到要上传文件的根目录

__VENV_PROMPT__D:\demo>

测试文件是否能够使用

__VENV_PROMPT__D:\demo>dir
 驱动器 D 中的卷是 Data
 卷的序列号是 94F1-75D8

 D:\demo 的目录

2022/03/21  13:14    <DIR>          .
2022/03/21  13:14    <DIR>          ..
2022/03/17  07:46                59 main.py
2022/03/21  13:14    <DIR>          qiye
2022/03/18  11:11               435 setup.py
               2 个文件            494 字节
               3 个目录 83,926,605,824 可用字节

__VENV_PROMPT__D:\demo>python main.py
****************************************
*                                  *****
**                                  ****
***        qiye is so boring!        ***
****                                  **
*****                                  *
****************************************
None

__VENV_PROMPT__D:\demo>

验证完成后,安装几个必要软件

pip install twine    上传需要
pip install wheel	 打包需要

开始打包

__VENV_PROMPT__D:\demo>python setup.py sdist bdist_wheel

他会出现打包的过程,假如报错,那就有可能setup.py文件语法出问题了,请根据报错提示定位修改,不然就是少必要软件了
成功会出现2个文件夹:
请添加图片描述

开始上传
我们只需要上传dist文件夹里的所有文件就行

twine upload dist/*    #上传

他会提示你输入username和password
输入你在pypi注册时的用户名和密码
能正常上传就行


这里上传可能会出现了几种问题,(我把坑踩完了) 1、出现twine不会被识别为内部或外部命令

解决:把C:\Users\myname\AppData\Roaming\Python\Python36\Scripts加入系统变量

2、HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/
Invalid or non-existent authentication information. See https://pypi.org/help/#invalid-auth for more information.
用户密码错误

3、HTTPError: 400 Bad Request from https://upload.pypi.org/legacy/
User ‘xxx’ does not have a verified primary email address. Please add a verified primary email before attempting to upload to PyPI. See https://pypi.org/help/#verified-email for more information.
自己账号的主邮箱没有验证,看看自己邮箱有没有pypi发来的邮件

下载模块

pip install 你的模块名

pip install qiye-game1

请添加图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:32:46  更:2022-03-22 20:33:41 
 
开发: 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年11日历 -2024/11/15 20:33:34-

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