学习笔记:发布自己的python模块安装包

0. 前言

发布自己的python模块安装包,首先得把自己的模块做成 .whl 格式的文件,然后再找个地儿存放它,接下来就是在 pip 命令中使用 -i 参数指定这个地儿(下载源)。Just so sooooooooo

1. 准备工作

(1) 注册 pypi.org 用户

我原本就是 pypi 的注册用户,但当我上传 .whl 格式的文件时,却被提示无权限。仔细阅读相关文档才发现,还需要在https://test.pypi.org/account/register/ 注册。我不确定是不是仅在这里注册就可用了。

(2) 使用 pip 安装或升级几个必备工具

生成和上传 .whl 格式的文件需要几个特殊工具,好在这几个工具使用 pip 就可以轻松搞定。

python.exe -m pip install --user --upgrade setuptools wheel 
python.exe -m pip install --user --upgrade twine

2. 规划文件目录

假定要发布的模块名称为 wxgl,包含 scene.py, region.py, colorbar.py 等三个文件。文件目录结构如下:

/wxgl_pkg
	wxgl
		__init__.py
		colorbar.py
		 region.py
		scene.py
	README.md
	setup.py

(1) init.py

该文件其内容可以为空。我的 init.py文件如下:

-*- coding: utf-8 -*-

name = 'wxgl'
version = "0.3.0"
version_info = (0, 3, 0, 0)

(2) README.md

关于安装和使用的说明,文本文件,不能使用中文。

(3) setup.py

# -*- coding: utf-8 -*-
import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="wxgl",
    version="0.3.0",
    author="xufive",
    author_email="xufive@gmail.com",
    description="A 3d library based pyOpenGL.",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/xufie/wxgl",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
)

提醒一点:License 很重要,pipy 检查很严格,不可乱写。最初是我使用 GPL,检查失败,后改用 MIT 才通过。

3. 生成安装包文件

运行 setup.py 脚本,生成安装包文件

python.exe setup.py sdist bdist_wheel

顺利的话,你可以看到 dist 文件夹:

/wxgl_pkg
	dist
		wxgl-0.3.0-py3-none-any.whl
		wxgl-0.0.1.tar.gz
	wxgl
		__init__.py
		colorbar.py
		 region.py
		scene.py
	README.md
	setup.py

如果只需要 .whl 文件,就运行:

python.exe setup.py bdist_wheel

4. 上传安装包文件

切换到setup.py的同级目录( 此时应该可以看到dist文件夹),运行:

python.exe -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*

这是pypi提供的一个测试用的仓库。根据提示输入用户名、密码,稍等片刻,即可完成。当然,也可以用下面的命令直接上传到https://upload.pypi.org/legacy/之下,这是正式的python模块仓库。

python.exe -m twine upload dist/*

5. 安装

如果上一步上传到了测试用的仓库,安装时请使用 -i 参数,指定安装源为https://test.pypi.org/simple/,其他参数不变:

pip install -i https://test.pypi.org/simple/ wxgl

如果上一步上传到了正式的仓库,安装就和所有的模块一样了:

pip install  wxgl
  • 35
    点赞
  • 237
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
好的,我会尽力回答你的问题。关于通过UDP传输音视频,我了解一些相关的知识,下面是一些学习笔记: 1. gstreamer是一个流媒体框架,用于创建、处理和播放多媒体流。它支持多种音视频格式,可以通过插件扩展功能。 2. 通过gstreamer可以使用UDP协议传输音视频数据。UDP协议是一种无连接的协议,不保证数据传输的可靠性和顺序性,但是传输效率高。 3. 首先需要创建一个gstreamer的pipeline,包括音视频源、编码器、UDP发送端等组件。例如: ``` gst-launch-1.0 -v filesrc location=test.mp4 ! decodebin ! x264enc ! rtph264pay ! udpsink host=192.168.1.100 port=5000 ``` 这个pipeline的作用是从test.mp4文件读取音视频流,解码后使用x264编码器进行压缩,然后使用rtph264pay将数据打包成RTP数据包,最后通过udpsink发送到指定的IP地址和端口。 4. 接收端需要创建一个gstreamer的pipeline,包括UDP接收端、解包器、解码器等组件。例如: ``` gst-launch-1.0 -v udpsrc port=5000 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! autovideosink ``` 这个pipeline的作用是从UDP端口5000接收音视频数据,使用rtpjitterbuffer解决网络抖动问题,使用rtph264depay将RTP数据包解包成原始的H.264数据流,然后使用avdec_h264解码器进行解码,最后使用autovideosink播放视频。 5. 在实际使用过程中,还需要考虑数据的带宽限制、网络延迟等问题,以保证音视频传输的效果。 希望这些笔记能对你有帮助。如果你还有其他问题,可以继续问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天元浪子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值