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

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

时间:2024-10-13 13:48:25浏览次数:9  
标签:Python setup 46 token 模块 pip 安装

[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 paramiko

ssh = 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 setup

setup(
    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 = '[email protected]',
    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 上查看你上传的项目

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

标签:Python,setup,46,token,模块,pip,安装
From: https://blog.csdn.net/zjw529507929/article/details/142830477

相关文章

  • Python爬虫快速入门(Requests+BeautifulSoup+Scrapy)
    目录1.为什么需要爬虫2.爬虫的方法2.1Requests2.2BeautifulSoup2.3Scrapy3.爬虫的注意事项1.为什么需要爬虫    爬虫是重要的数据获取方式,理论上任何网上公开可视的数据都是可以获取到的。在学术研究等场合中除了使用直接的数据集以及各种搜索引擎提......
  • 【Python库安装】Python环境安装GDAL库
    Python环境安装GDAL库1GDAL介绍GDAL的应用python安装GDAL库Python版本查看与切换方法1:pip直接安装另:下载.whl文件安装报错-Python安装库文件isnotasupportedwheelonthisplatform的解决方案方法2:离线安装,使用whl文件安装方法3:使用conda安装wrf-python:参考......
  • Python与深度学习库PyTorch进阶
    Python与深度学习库PyTorch进阶从零开始:PyTorch环境搭建与第一个神经网络安装PyTorch第一个神经网络玩转张量:掌握PyTorch核心——Tensor操作全解析创建张量张量运算自动求导模型构建的艺术:自定义神经网络层与模块自定义层自定义模块训练秘籍:优化器、损失函数与训练循......
  • python量化数据6:计算宁德时代macd金叉死叉红柱绿柱大小
    一、通达信公式#行业业绩轮动公众号首发DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);DEA:=EMA(DIFF,9);MACD:=2*(DIFF-DEA);金叉cross(diff,dea)死叉cross(dea,diff)二、代码#行业业绩轮动公众号首发#tdx_indicator是1个通达信常用函数的封装库,下载可以从我的开......
  • CSP 模拟 46
    A二分答案,每个数去找范围内最左边的。B相同的数不会交换,所以设\(f_{i,j,k,u}\)为到\(i\),有了\(j\)个0,\(k\)个1,当前位置是\(u\)的最小代价,转移是暴力的,如果一个数要去前面,那么最优的方案一定不会把他往后面换,所以两次移动只有一次贡献,最终的答案要除以\(2\)。C首先......
  • 异常断链的惨痛经历!拯救Air780EP模块紧急项目
    ​ 必须要吐槽一下:最近被老板驱使,要用Air780EP模块做几个紧急项目。。。就怕紧急项目,时间紧任务重,遇到了一些棘手问题,可把我给折腾死了……这里把遇到的问题,排查记录下来,看能不能帮到因遇到类似的问题,并且一直没找到原因,而被老板要求加班解决的兄弟们。 一、相关背景简介 ......
  • Python实践——实现视频.mp4转图片.jpg(可成功实现)
    代码......
  • Python从0到100(六十三):Python OpenCV-入门基础知识
    前言:零基础学Python:Python从0到100最新最全教程。想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、计算机视觉、机器学习、神经网络以及人工智能相关知......
  • Springboot在线学习辅导管理系统--49101(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对在线学习辅导管理系统等问题,对在线学习辅导管理系统进行研究分析,然后开发设计出在线学习辅......
  • Springboot一个小说阅读APP的设计与实现--48151(免费领源码)可做计算机毕业设计JAVA、PH
    摘 要大数据时代下,数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势。在小说在线阅读的需求下,开发一款小说阅读APP,将复杂的系统进行拆分,能够实现对需求的变化快速响应、系统稳定性的保障,能保......