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│└─iogame1.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-75D8D:\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.py2 个文件 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模块打包上传pypi相关推荐
- python模块打包上传pypi-演示pytest hook函数二次开发
python模块打包上传pypi pytest hook函数二次开发 修改默认编码 显示中文用例名称 官方文档 : https://packaging.python.org/en/latest/tut ...
- python工程打包上传nexus私服
打包 参照官方文档: setup规范 https://packaging.python.org/tutorials/distributing-packages/#setup-py twine使方法 h ...
- python382怎么用_手把手教你使用python自动打包 上传应用分发
1)先上脚本 步骤很简单 ,如下文所示 本脚本是基于python3,如何在mac 电脑升级python3 参考我2天前写的文章 Mac 系统同时安装python2 和python3 #!/usr/bi ...
- Python编程:twine模块打包python项目上传pypi
注册账号(重要) https://pypi.org 可以配置到$HOME/.pypirc文件中,就不用多次输入了 [pypi] username = <username> password ...
- python打包上传至pypi —— 具有多个目录的项目工程快速打包上传
项目目录 项目目录说明: cqrcode:项目包(我的里面有多个目录) LINCENSE:许可证 MANIFEST.in:需要打包的项目文件说明 README.md:项目说明文档 requiremen ...
- 发布你自己的轮子 - PyPI打包上传实践
文章目录 发布 Python 包 准备 创建用户验证文件 创建项目结构 编写setup.py 编写README.md 编写LICENSE 生成发布包 本地测试(可选) 上传到PyPI 安装测试 常见错 ...
- Android 通过python实现自动化构建打包上传加固
Android 通过python实现自动化构建打包上传加固 实现需求: 基于gradle命令,通过python实现多渠道,多环境打包,上传蒲公英,360加固等 经过学习调研完成步骤如下: 一,通过gr ...
- Python项目打包发布到pypi
最近心血来潮,想把自己的写的python项目打包到pypi,也让广大朋友能够通过pip来安装我的python包. 第一次尝试,中间遇到了一些问题,记录下来,方便其他感兴趣的朋友. 项目组织架构 # t ...
- uni-app实现支付及项目打包上传
本文主要介绍uni-app项目中如何实现支付功能(支付宝支付.微信支付),及项目如何打包上传. 一.实现支付 前置工作,项目要实现支付功能,首先要在根目录manifest.json文件内App模块配置 ...
最新文章
- 阿里云天池大赛赛题解析――深度学习篇
- windows服务安装
- mybatis04--Mapper动态代理实现
- arm 流水线和pc值
- java secondtotime_Java中的LocalTime toSecondOfDay()方法
- 4408: [Fjoi 2016]神秘数
- JavaScript之常见算法排序
- 常用Openssl命令
- 类似新浪微博和google图片的HTML5实现图片拖拽上传功能
- JavaWeb知识总结
- C#编程利器之四:委托与事件(Delegate and event) (下)
- mac vulkan_基于 mac 的 ncnn vulkan iOS集成参考
- 企业全面运营管理沙盘模拟心得_企业经营沙盘模拟心得总结
- Text Scanner for Mac(超快速ocr文字识别软件)
- JavaScript文档注释JSDoc注释
- Spring Boot-配置
- 关于支付接口回调地址参数字段是“notify_url”,签名过后的特殊字符url编码以后再解码后出现错误(¬ , ¢, ¤, £)
- NVIDIA主控CPU/GPU设置频率
- xamarin学习笔记A19(安卓AIDL)
- 可以过滤网页中广告的插件Adblock Plus
热门文章
- 升级服务器后的作用,服务器硬件升级的七大注意事项
- matlab字符串表示方法,MATLAB字符和字符串
- ASP.NET使用文件流的方式下载文件
- uboot在nandflash和norflash是如何运行的
- java lucene词干提取_词形变换和词干提取工具(英文)
- 菜鸟必看 揭开系统资源的神秘面纱
- C# Jama 混合编程
- MFC 自动获取可用com串口(串口号以及名称)
- java集合类构造及原理
- java实现游戏道具购买_基于jsp的虚拟游戏交易-JavaEE实现虚拟游戏交易 - java项目源码...