[Python学习日记-46] Python 中第三方开源模块的安装、使用与上传自己写的模块

[Python学习日记-46] Python 中第三方开源模块的安装、使用与上传自己写的模块

简介

下载与安装

如何使用安装好的第三方开源模块

如何上传自己写的模块到 PyPi

简介

        在前面的模块介绍和导入当中主要介绍的都是 Python 内置的一些模块,我们把它称为标准库,而这个库里面只有一百多快两百个的模块,其实对于实际的开发当中远远是不够的,所以就出现了第三方开源的模块,其实这就是众多 Python 开发者自主上传到社区,然后供大家使用,避免大家重复造轮子的现象。

        而这个社区网址在这里:https://pypi.python.org/pypi 它是 Python 的开源模块库,截止2024年10月12日,已经收录了575493个来自全世界 Python 开发者贡献的模块,几乎涵盖了你想用 Python 做的任何事情。事实上每个 Python 开发者,只要注册一个账号就可以往这个平台上传你自己的模块,这样全世界的开发者都可以容易的下载并使用你的模块。

下载与安装

一、查找模块并下载

1、以 paramiko 模块为例,打开该网站:PyPI · The Python Package Index 输入模块名进行搜索

2、搜索后点击想要的模块进入

3、点击 Download files 进入下载界面,并点击后缀为 .tar.gz(其实这个后缀就是一个压缩包,可以使用解压文件打开或解压)的文件开始下载

4、下载完毕后解压该文件

5、接下来我们可以进入命令行使用 Python 对下载好的代码进行安装了

二、源码安装

1、打开命令行,进入解压好的文件目录


2、安装 setuptools 模块,源码安装的依赖模块

        如果你是初次安装模块时可能会遇到 ModuleNotFoundError: No module named 'setuptools' 的报错,这是由于没有 setuptools 模块导致的,所以我们应该先安装该模块才能顺利编译安装

        请使用以下命令安装 setuptools

pip install setuptools        # 这里为了快捷安装好依赖环境,我们直接使用 pip 来进行安装,后面会讲到

        这样就代表安装成功了

3、执行以下命令完成安装

编译源码:python setup.py build

安装源码:python setup.py install

        编译源码过程中没有报错代表成功,如下图所示

        安装源码过程中没有出现报错则代表成功,如下图所示

三、pip 命令安装

        源码安装我们会比较少用,并且源码安装实在是太复杂了,各种依赖包还需要你自行安装,下面我们介绍一下如何直接通过 pip 命令进行安装,同样以 paramiko 模块为例,执行以下命令完成安装

pip install paramiko        # paramiko 是模块名

        pip 命令会自动下载模块包并完成安装。如下图所示

        软件一般会被自动安装你 Python 安装目录的这个子目录里

\your_python_install_path\Lib\site-packages        # 这个是 Windows 的安装路径,Linux/Mac 的安装路径大同小异

         pip 命令默认会连接在国外的 Python 官方服务器下载,而速度比较慢只有十几kB,你还可以使用国内的阿里云等镜像源,数据会定期同步国外官网的开源模块资源库,速度会快好多,需要使用以下命令来完成安装

pip install -i https://mirrors.aliyun.com/pypi/simple/ paramiko --trusted-host mirrors.aliyun.com        # paramiko 是模块名

  •  -i:后面跟的是镜像源地址
  • --trusted-host:如果镜像源地址为 http 则需要加上该选项,这是为通过网站 https 安全验证用的

        切换为国内镜像源后速度非常快,下面提供更多的国内镜像源

国内的镜像源:

  • 阿里云:https://mirrors.aliyun.com/pypi/simple/
  • 清华大学 TUNA:https://pypi.tuna.tsinghua.edu.cn/simple/
  • 华为云:https://mirrors.huaweicloud.com/repository/pypi/simple
  • 中国科技大学:https://mirrors.ustc.edu.cn/pypi/simple/

pip 命令介绍:

命令说明
install安装包
download下载包
uninstall卸载包
freeze按需求格式输出已安装的包
inspect检查 Python 环境
list列出已安装的包
show显示已安装包的信息
check验证已安装的包具有兼容的依赖项
config管理本地和全局配置
search在 PyPI 中搜索包
cache检查和管理 pip 的 wheel 缓存
index检查从包索引中可获取的信息
wheel根据你的需求构建 wheels
hash计算包归档的哈希值
completion一个用于命令补全的辅助命令
debug显示对调试有用的信息
help显示命令的帮助

四、模块卸载

1、源码安装的卸载

        源码安装的卸载比较复杂,需要找出全部的依赖包以及本体删除掉,安装路径默认是在 \your_python_install_path\Lib\site-packages 中,由于源码安装卸载都比较麻烦,所以不是逼不得已都不建议使用

2、pip 命令进行卸载

        以 paramiko 模块为例,请使用以下命令来完成卸载

pip uninstall paramiko

        卸载完成后如下如图所示 

如何使用安装好的第三方开源模块

        安装完毕后,我们以 paramiko 模块为例,该模块是让一个连接 linux 服务器并执行命令的模块,代码如下

import paramikossh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='192.168.174.128', username='root', password='<Your root password>')stdin, stdout, stderr = ssh.exec_command('df')for line in stdout:print(line,end='')ssh.close()

代码输出如下:

如何上传自己写的模块到 PyPi

1、需要现在社区注册一个自己的账号 https://pypi.python.org/pypi 

2、打包教程请参照:Python 打包用户指南

3、首先需要设计好自己的项目目录结构

<jove_test_module>/    # 项目根目录
          |-- my_module.py    # 代码模块
          |-- README.md       
          |-- LICENSE
          |-- setup.cfg
          |-- setup.py

4、编写配置说明文件

README.md:项目描述文件,包含怎么安装、怎么使用等

LICENSE:开源 License,例如 MIT、Apache license 2.0等

setup.cfg:配置信息文件,运行 setup.py 程序打包的时候会用到里面的配置,作为 setup.py 的命令行参数,打包时会自动生成

setup.py:用于描述项目,之后打包的时候会用到这个文件。它告诉 PyPI 项目叫什么、是什么版本、依赖库有那些、支持那些操作系统、支持那些版本的 Python 上运行等等

5、编写 setup.py

from setuptools import setupsetup(name='jove_test_module',version='0.1',py_modules=['my_module'],description='This is a test module.',long_description=open('README.md').read(),author = 'jove zou',author_email = '529507929@qq.com',url = 'https://github.com/yourusername/your_package_name',install_requires = [# list of your package dependencies],python_requires = '>=3.6'
)

6、安装打包和上传工具

pip install -i https://mirrors.aliyun.com/pypi/simple/ setuptools wheel twine

7、对项目进行打包

        需要现在命令行进入该项目的目录

        然后再执行该命令

python setup.py sdist bdist_wheel

        运行结果如下

        其中打包好的包就在 dist 目录当中

8、创建 API token

        进入账号设置页面

         下拉找到 API tokens 的位置,点击 Add API token 创建 token

         进入该界面,需要填写 token 名和 token 的权限范围,填写完毕后点击 Create token 就可以看到创建的 API token 了 

        得到 API token 后就可以愉快的上传你自己写的模块了

9、上传项目到 PyPi

        执行该命令进行上传

twine upload dist/*

twine upload --username __token__ --password your-api-token dist/*

         命令运行后会出现 Enter your API token 提示,需要输入你上面创建的 API token,注意,token 复制下去后并不会显示,上传成功后效果如下

10、在 PyPi 上查看你上传的项目

        下载下来后于上传前的项目内容对比是完全一致的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/446151.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【多版本并发控制(MVCC)】

并发事务问题&#xff1a; MySQL隔离级别-未提交读&#xff0c;提交读&#xff0c;可重复读&#xff0c;序列化 隔离级别对于并发事务的解决情况 隔离级别脏读不可重复读幻读未提交读不可不可不可读已提交可不可不可可重复读 &#xff08;默认&#xff09;可可不可串行化&…

vue+echarts实现雷达图及刻度标注

文章目录 前言代码实现实现效果总结 前言 最近项目有做数据可视化 大屏 不免再次使用些echarts应用 记录下其中echarts雷达图的实现 代码实现 先上代码 <template><div class"container"><div ref"chart" style"width: 500px; heig…

树莓派应用--AI项目实战篇来啦-11.OpenCV定位物体的实时位置

1. 介绍 本项目通过PCA9685舵机控制模块控制二自由度舵机云台固定在零点位置&#xff0c;然后通OpenCV检测到黄色小熊&#xff0c;找到中心位置并打印出中心位置的坐标&#xff0c;通过双色LED灯进行指示是否检测到目标&#xff0c;本项目为后面二维云台追踪物体和追踪人脸提供…

grpc的python使用

RPC 什么是 RPC &#xff1f; RPC&#xff08;Remote Procedure Call&#xff09;远程过程调用&#xff0c;是一种计算机通信协议&#xff0c;允许一个程序&#xff08;客户端&#xff09;通过网络向另一个程序&#xff08;服务器&#xff09;请求服务&#xff0c;而无需了解…

Cef加载自定义本地资源

在Cef auto build下载cefCEF Automated Builds 我下载的是104&#xff0c;使用cefsimple工程。 例如&#xff1a;前端资源如下 通过http协议把前端资源加载出来。所有的资源都通过http://local.test.cn/xxx加载。 前端资源包括index.html、test.css、test.js index.html&am…

福州少儿自闭症寄宿制学校:专注关爱每个孩子

在福州&#xff0c;少儿自闭症寄宿制学校以其专注与关爱&#xff0c;为自闭症儿童提供了一个温暖的避风港。这些学校不仅提供教育服务&#xff0c;更是一个充满爱与包容的大家庭&#xff0c;让孩子们在这里找到归属感和自信心。然而&#xff0c;当我们把目光投向广州&#xff0…

《鸟哥的Linux私房菜基础篇》---1 Linux的介绍与如何开启Linux之路

目录 一、Linux的简单介绍 1、Linux的简介 2、Linux的起源与发展 3、主要特点 4、应用场景 二、开启Linux之路 1、学习Linux的相关知识 2、正规表示法、管线命令、数据流重导向 前言 整体大纲预览 一、Linux的简单介绍 1、Linux的简介 &#xff08;1&#xff09;Linu…

[棋牌源码] 2023情怀棋牌全套源代码含多套大厅UI及600+子游源码下载

降维打击带来的优势 这种架构不仅极大提升了运营效率&#xff0c;还降低了多端维护的复杂性和成本。运营商无需投入大量资源维护多套代码&#xff0c;即可实现产品的全终端覆盖和快速更新&#xff0c;这就是产品层面的降维打击。 丰富的游戏内容与多样化大厅风格 类型&#…

VS2017 编译 SQLite3 动态库

首先官方下载源码: Tags sqlite/sqlite (github.com) 1.安装 VS2017 community edition 2.打开VS2017命令行工具 3.安装TCL 开发库,推荐 TCL 9.0 先下载源码: Tcl/Tk 9.0 使用vs2017编译tcl&

图书馆自习室座位预约管理微信小程序+ssm(lw+演示+源码+运行)

摘 要 随着电子商务快速发展世界各地区,各个高校对图书馆也起来越重视.图书馆代表着一间学校或者地区的文化标志&#xff0c;因为图书馆丰富的图书资源能够带给我们重要的信息资源&#xff0c;图书馆管理系统是学校管理机制重要的一环&#xff0c;,面对这一世界性的新动向和新…

vue3中监视 Reactive对象中的属性

watch 的第一个参数可以是不同形式的“数据源”&#xff1a;它可以是一个 ref (包括计算属性)、一个响应式对象、一个 getter 函数、或多个数据源组成的数组 一、框架&#xff1a; <template><div class"divBox"><h2>姓名&#xff1a;{{ person.…

ElasticSearch是什么?

1.概述 Elasticsearch 是一个基于 Apache Lucene 构建的开源分布式搜索引擎和分析引擎。它专为云计算环境设计&#xff0c;提供了一个分布式的、高可用的实时分析和搜索平台。Elasticsearch 可以处理大量数据&#xff0c;并且具备横向扩展能力&#xff0c;能够通过增加更多的硬…

力扣周赛:第419场周赛

&#x1f468;‍&#x1f393;作者简介&#xff1a;爱好技术和算法的研究生 &#x1f30c;上期文章&#xff1a;力扣周赛&#xff1a;第415场周赛 &#x1f4da;订阅专栏&#xff1a;力扣周赛 希望文章对你们有所帮助 因为一些特殊原因&#xff0c;这场比赛就打了1h&#xff0c…

Linux——传输层协议

目录 一再谈端口号 1端口号范围划分 2两个问题 3理解进程与端口号的关系 二UDP协议 1格式 2特点 3进一步理解 3.1关于UDP报头 3.2关于报文 4基于UDP的应用层协议 三TCP协议 1格式 2TCP基本通信 2.1关于可靠性 2.2TCP通信模式 3超时重传 4连接管理 4.1建立…

【uni-app】HBuilderX安装uni-ui组件

目录 1、官网找到入口 2、登录帐号 3、打开HuilderX 4、选择要应用的项目 5、查看是否安装完成 6、按需安装 7、安装完毕要重启 8、应用 前言&#xff1a;uniapp项目使用uni-ui组件方式很多&#xff0c;有npm安装等&#xff0c;或直接创建uni-ui项目&#xff0c;使用un…

开源商城系统crmeb phpstudy安装配置

BOSS让我最快时间部署一套开源商场系统&#xff0c;今天就以crmeb为例。 快速部署在linux中我会首选docker&#xff0c;因为我要在windows中部署&#xff0c;本文就选用phpstudy集成环境做了。 什么是crmeb 我从官网摘点&#xff1a; CRMEB产品与服务 CRMEB通过将CRM&#x…

Leecode刷题之路第18天之四数之和

题目出处 18-四数之和-题目出处 题目描述 个人解法 思路&#xff1a; todo 代码示例&#xff1a;&#xff08;Java&#xff09; todo复杂度分析 todo 官方解法 18-四数之和-官方解法 方法1&#xff1a;排序双指针 思路&#xff1a; 代码示例&#xff1a;&#xff08;Java…

codeforces round976 div2

A find minimum operations 思路&#xff1a;将所给的n变成k进制数&#xff0c;答案就是n的k进制形式下的位数之和 代码&#xff1a; #include <bits/stdc.h> using namespace std;typedef long long ll;ll n, k;void solve() {cin >> n >> k;ll cnt 0…

陪诊小程序搭建:打造便利的陪诊环境

陪诊行业作为一个新兴行业&#xff0c;随着老龄化的严重&#xff0c;在近几年中需求量日益旺盛。陪诊师为大众的就医提供了极大的便利性&#xff0c;在看病难、医疗资源紧张方面发挥了积极作用。 在陪诊行业的快速发展下&#xff0c;陪诊小程序为行业带来了便捷的模式&#xf…

解决:gpg: 从公钥服务器接收失败:服务器故障

当你添加密钥时报错&#xff0c;可以按照下面的步骤&#xff0c;依次输入。 # 停止 Network Manager 服务 sudo service network-manager stop# 删除 Network Manager 的状态文件 sudo rm /var/lib/NetworkManager/NetworkManager.state# 重新启动 Network Manager 服务 sudo …