先在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注册时的用户名和密码
能正常上传就行
解决:把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