python包的管理

管理python包

python能跻身最欢迎编程语言前列的一个主要原因是python有着活跃的社区提供丰富的包,诸如numpy,pandas,scikit-learn等等。

python的包都存放PyPI中,PyPI即Python Package Index,是python的软件仓库。所有的python包都可以在PyPI中下载并安装。

PyPI中的每个包都对应一个URL:https://pypi.python.org/pypi/{package},通过URL直接下载就是安装;只不过这是一个手动的过程:搜索包+下载+解压+Python setup.py install

有没有自动的方式?

setuptools

一种是setuptools,提供一键安装。当然首先要先安装setuptools。setuptools可以通过https://pypi.python.org/pypi/setuptools下载setuptools包手动安装。

安装setuptools之后,就可以运行easy_install命令安装其他的包,如

easy_install numpy

pip

pip作为setuptools的改进版,增加了对已安装包的查询和删除等管理,是当前最流行的python包管理工具。

要使用pip需要安装,可以通过PyPI下载也可以通过setuptools安装。

easy_install pip 

注意:setuptools和pip都是python软件包哦。

pip提供了CLI命令,可以通过pip --help查看使用帮助
请添加图片描述

最常用例子


# 安装
pip install numpy

# 卸载
pip uninstall numpy

# 查看已安装包
pip list

升级pip版本

pip install pip -U

在国内pypi的网站下载可能会比较慢,可以设置其他镜像站点如清华源

可以通过 pip config 设置为默认源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

也可以每次pip install 指定源

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

另外yolk也提供了更详细的包的信息,不过不是很常用


pip install yolk3k
# 查看已经安装包
yolk -l 
# 显示包注册的所有入口点
yolk --entry-map

小结

今天介绍了几种python包的管理方法, pip是最流行的方式。但是不要忘记了最原始的PyPI。

另外Anaconda 提供是常用的python的安装包,当然也包括pip。

打包python程序

当你开发完自己的python程序并通过测试后,下一步就是要打包部署你的程序。

  • 如果你开发的是公共组件,供他人使用,则需要打包代码,并发布到内部共享库或者公开的PyPI
  • 如果你开发的是独立组件,则打包代码,通过持续集成进行发布到线上部署

打包文件格式通常是zip包或者tar包。

之前介绍过的setuptools提供了较完善的打包和发布到公开源PyPI的过程,打包步骤如下:

  • 自己程序模块,如add.py
  • setup.py 设置安装相关信息
  • 打包
  • 发布到PyPI
  • 下载安装
  • 模块使用

我们以一个例子来说明上述的步骤

  • 自己程序模块
    一个简单的工具计算类add.py

def add(a, b):
    return a + b
  • setup.py文件
    编写setup文件,一般只要包括版本和模块,以及作者信息即可。也可以通过paste模块自动生成setup文件。
    下面是一个简单的setup文件

from distutils.core import setup
setup(name='add',
    version='1.0',
    py_modules=['add'],
    )

paste模块通过pip install pastescript安装,paste提供了不同的模板可以快速创建setup文件,也可以通过制定的配置文件生成,通常建议使用配置来创建

请添加图片描述

常用配置如下:

[pastescript]
description = aiweker-prj
license_name = aiweker
keywords = Python
long_description = aiweker-prj
author = aiweker
author_email = xxx@aiweker.com
url = http://aiweker.com
version = 1.0.0
paster通过create创建setup文件,模板为basic_package
paster create -t basic_package --config="aiweker-prj-setup.cfg" add
  • 打包
    注意上面提及的add.py模块和setup.py文件是在同一个级目录。打包执行下面命令即可打包

    
    python setup.py sdist --formats=zip,gztar
    

    打包后在dist目录下会有两个包一个是zip包,另一个是tar.gz包

    ./dist
    |- add-1.0.tar.gz
    |- add-1.0.zip
    
  • 上传到PyPI
    要上传到PyPI,需要在PyPI注册一个账号

    • 通过python setup.py register注册;
    • 注册完之后,通过python setup.py register -n登录
    • 通过upload 进行上传 python setup.py sdist upload
  • 安装模块和使用
    直接使用以下命令安装模块

python setup.py install

import add

print(add.add(10, 4))
# 14

以上就是简单的打包发布过程,希望对你有帮助!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探索C语言中判断字符串循环移位关系的实现

在C语言的字符串处理中,判断两个字符串是否为循环移位关系是一个有趣且实用的问题。今天,我们就通过一段具体的代码来深入探讨这个问题的解决方案。 代码实现 代码逐行解析 预处理指令和头文件包含 #define _CRT_SECURE_NO_WARNINGS 用于禁用一些与安全…

【推理llm论文精度】DeepSeek-R1:强化学习驱动LLM推理能力飞跃

最近deepseek R1模型大火,正好复习一下他家的技惊四座的论文https://arxiv.org/pdf/2501.12948 近年来,大型语言模型(LLM)在推理能力上取得了显著进展,但如何进一步有效提升仍然是研究热点。DeepSeek-AI发布了 DeepS…

硬件学习笔记--42 电磁兼容试验-6 传导差模电流干扰试验介绍

目录 电磁兼容试验-传导差模电流试验 1.试验目的 2.试验方法 3.判定依据及意义 电磁兼容试验-传导差模电流干扰试验 驻留时间是在规定频率下影响量施加的持续时间。被试设备(EUT)在经受扫频频带的电磁影响量或电磁干扰的情况下,在每个步进…

【Java学习】类和对象

目录 一、选择取块解 二、类变量 三、似复刻变量 四、类变量的指向对象 五、变量的解引用访问 1.new 类变量(参) 2.this(参) 3.类变量/似复刻变量. 六、代码块 七、复制变量的赋值顺序 八、访问限定符 1.private 2.default 九、导类 一、选择取块解 解引用都有可以…

I.MX6ull-I2C

一,I2C总线介绍 I2C(Inter-Integrated Circuit 集成电路)总线是Philips公司在八十年代初推出的一种串行、半双工的总 线,主要用于近距离、低速的芯片之间的通信;I2C总线有两根双向的信号线,一根数据线SDA用于收 发数据,一根时钟线…

从插入排序到希尔排序

从插入排序到希尔排序 插入排序 原理 插入排序是一种简单直观的排序算法,其基本思想是通过将每个元素逐个插入到已排序的部分中,逐步构建一个有序序列。 操作步骤 初始化:将第 1 个元素视为已经有序的部分(初始时长度为 1&#xf…

AcWing——3624. 三值字符串

双指针解法 #include<iostream> #include<unordered_map> using namespace std; int main() {int n; cin >> n;while(n--){unordered_map<char, int> tree;string s; cin >> s;int ans 0x7fffffff; for(int i 0, j 0; j < (int)s.size();…

【Vue3源码解析】响应式原理

源码环境搭建 【Vue3源码解析】应用实例创建及页面渲染-CSDN博客 写文章时的Vue 版本&#xff1a; "version": "3.5.13",针对单个包进行开发环境打包、测试。 pnpm run dev reactivityreactive 创建响应式对象 packages/reactivity/src/reactive.ts …

刷题记录(回顾)HOT100 二叉树-10: ​199. 二叉树的右视图

题目&#xff1a;199. 二叉树的右视图 难度&#xff1a;中等 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左 子树 只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左…

书籍推荐:《书法课》林曦

记得樊登老师说过&#xff0c;如果你想了解一个事物&#xff0c;就去读5本相关的书&#xff0c;你会比大部分人都更了解它。这是我读的第4本和“书法”有关的书&#xff0c;作为一个零基础的成年人&#xff0c;林曦这本《书法课》非常值得一读。&#xff08;无论你是否写字&…

一个根据输入内容过滤下拉选的组件

1.element的select自定义过滤不是很灵&#xff0c;使用了input和dropdown 组件 <template><div class"autocomplete-wrapper"><!-- 使用 el-input 组件 --><el-inputv-model"inputValue"input"handleInput"placeholder&q…

5G与物联网的协同发展:打造智能城市的未来

引言 随着科技的不断进步&#xff0c;智能城市的概念已经不再是科幻小说中的幻想&#xff0c;它正在逐步走进我们的生活。而这背后的两大驱动力无疑是 5G和 物联网&#xff08;IoT&#xff09;。5G网络以其高速率、低延迟、大容量的优势&#xff0c;与物联网的强大连接能力相结…

SpringBoot 与 SpringCloud的版本对应详细版

| Greenwich版本 | 兼容Spring Boot 2.1.x | | Hoxtonl版本 | 兼容Spring Boot 2.2.x | 在实际开发过程中&#xff0c;我们需要更详细的版本对应&#xff1a; | Spring Boot | Spring Cloud | | — | — | | 1.5.2.RELEASE | Dalston.RC1 | | 1.5.9.RELEASE | Edgware.RE…

最新国内 ChatGPT Plus/Pro 获取教程

最后更新版本&#xff1a;20250202 教程介绍&#xff1a; 本文将详细介绍如何快速获取一张虚拟信用卡&#xff0c;并通过该卡来获取ChatGPT Plus和ChatGPT Pro。 # 教程全程约15分钟开通ChatGPT Plus会员帐号前准备工作 一个尚未升级的ChatGPT帐号&#xff01;一张虚拟信用卡…

现在有什么赛道可以干到退休?

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;点击跳转到网站 &#xff0c;对人工智能感兴趣的小伙伴可以点进去看看。 最近&#xff0c;一则“90后无论男女都得65岁以后退休”的消息在多个网…

electron打包基本教程

从0开始搭建 概要步骤基础软件运行项目打包项目 注意事项 概要 将html打包成桌面的主流有electron和nwjs&#xff0c;nwjs更加简单&#xff0c;但是使用效果不如electron&#xff0c;electron打包比较麻烦&#xff0c;但是效果比较好&#xff0c;反正各有优势和缺点 步骤 基…

ESXi安装【真机和虚拟机】(超详细)

项目简介&#xff1a; ESXi&#xff08;Elastic Sky X Integrated&#xff09;是VMware公司开发的一种裸机虚拟化管理程序&#xff0c;允许用户在单一物理服务器上运行多个虚拟机&#xff08;VM&#xff09;。它直接安装在服务器硬件上&#xff0c;而不是操作系统之上&#xff…

【kafka系列】消费者重平衡

目录 流程 1. 消费者组重平衡&#xff08;Rebalance&#xff09;的流程逻辑分析 阶段一&#xff1a;触发重平衡 阶段二&#xff1a;消费者组协调 阶段三&#xff1a;重平衡完成 关键设计思想 2. Mermaid 流程代码 关键点总结 重平衡的影响 1. 重平衡期间的消费行为 2…

基于SpringBoot+Vue的高校线上心理咨询室的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

DeepSeek学术秘籍:如何让DeepSeek辅助论证?

随着人工智能技术的飞速发展&#xff0c;AIGC技术在学术领域的应用逐渐引起了广泛关注。其中最近大火的DeepSeek作为一款基于大语言模型的应用&#xff0c;其出现标志着学术论文写作中研究方法的一次重大变革。 辅助论证 在学术论文写作中&#xff0c;借助DeepSeek优化辅助论证…