pipsetup

ops/2024/10/21 1:31:34/

pip install git+https://github.com/openai/CLIP.git

应用于以pip install方式安装一个没有发布到PyPI源上的python包(有一个setup文件就行),pip可以支持git这种安装方式是因为pip支持vcs协议(version control systems版本控制系统),省去了线git clone再转到对应目录执行:python setup.py install。

PyPI源

pip是一个现代通用的python包管理工具,PyPI(python package index)包索引是python官方的第三方库的仓库,每个包都有一个唯一的名称和版本号,所有人都可以下载第三方库或者上传自己的库到PyPI。PyPI推荐使用pip包管理器来下载第三方库,pip install命令可以指定包的名称和版本。

python setup.py install

在安装python相关模块和库时,一般使用python setup.py install。前者是在线安装,会安装该包的相关依赖包;后者是下载源码然后在本地安装,不会安装该包的相关依赖包。

python setup.py install会更适合需求:

在编写相关系统时,python 如何实现连同依赖包一起打包发布?

假如我在本机开发一个程序,需要用到python的redis、mysql模块以及自己编写的redis_run.py模块。我怎么实现在服务器上去发布该系统,如何实现依赖模块和自己编写的模块redis_run.py一起打包,实现一键安装呢?同时将自己编写的redis_run.py模块以exe文件格式安装到python的全局执行路径C:\Python27\Scripts下呢?

在这种应用场景下,pip工具似乎派不上了用场,只能使用python的构建工具setup.py了,使用此构建工具可以实现上述应用场景需求,只需在 setup.py 文件中写明依赖的库和版本,然后到目标机器上使用python setup.py install安装。

模块和库和包

  • 模块(module)是一个包含Python定义和语句的文件,也就是一个.py文件就可以称为一个模块。__name__是一个全局变量,不同场景下它的值是不一样的。(1)当模块作为脚本被直接运行的时候,__name__变量的值为"__main__";(2)当模块被其他脚本import调用时,该变量为模块文件名。
  • 模块一般就是我们日常随手用的一些规模较小的代码,而在比较大规模的任务一般需要用到大量的模块,此时我们可以使用包(Package)来管理这些模块。我们平时下载的第三方包也就是这个,如Numpy,包,就是里面装了一个__init__.py文件的文件夹。__init__.py脚本有下列性质:(1)它本身是一个模块;(2)模块名不是__init__,而是包的名字,也就是装着__init__.py文件的文件夹名。(3)它的作用是将一个文件夹变为一个Python模块(4)它可以不包含代码,不过一般会包含一些Python初始化代码(例如批量导入需要的模块),在这个包被import的时候,这些代码会自动被执行。
  • 库library:只是一个通俗的说法,平时说的库既可以是一个模块也可以是一个包。

pytorch中其实一般没有特别明显的Layer和Module的区别,不管是自定义层、自定义块、自定义模型,都是通过继承Module类完成的,这一点很重要。其实Sequential类也是继承自Module类的。


http://www.ppmy.cn/ops/103881.html

相关文章

红帽与SUSE对RHEL/CentOS 7系列延长生命周期支持策略:保障企业Linux系统的持续安全与稳定

一、前言 昨天有幸参加了一个活动,其一主办方是SUSE,感谢SUSE的工程师提供相关信息。 在本篇文章中,我们将深入探讨两个关键的Linux操作系统支持方案:“红帽企业版 Linux 7(RHEL 7)延长生命周期支持”和“…

vscode使用

1vscode写vue代码高亮 点击文件-》首选项-》设置 或者直接快捷键ctrl, 在搜索框中输入settings.json,打开此文件 添加对.vue文件的配置 重新打开vscode就可以i了 备注:有人使用"vue",我开始也试了vue,不知道为啥不可以&#xff…

Python2.x 与 3.x 版本区别

参考: Python2.x 与 3​​.x 版本区别 | 菜鸟教程 (runoob.com) Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python 3.0 在设计的时…

Git实战精粹

一、快速入门 1. 什么是Git Git是一个分布式的版本控制软件。 软件,类似于QQ、office、dota等安装到电脑上才能使用的工具版本控制,类似于毕业论文、写文案、视频剪辑等,需要反复修改和保留原历史数据分布式 文件夹拷贝本地版本控制集中式…

Spring Cloud Consul 与 Eureka 对比:如何选择最佳服务发现工具

Spring Cloud Consul 与 Eureka 对比:如何选择最佳服务发现工具 服务发现是微服务架构中的核心组件之一,它允许服务之间在动态环境中彼此发现和通信。Spring Cloud 提供了多个服务发现工具,其中 Consul 和 Eureka 是最常用的两个。本文将深入…

Typescript 使用 Jest 进行单元测试

参考文章:快速开始Jest 安装所需依赖:npm install --save-dev ts-node jest types/jest ts-jest Jest 转换 TypeScript 代码需要ts-node添加并配置 Jest 配置文件:jest.config.ts // jest.config.ts module.exports {// TypeScript 代码预…

VIVO 相机HDR拍照流程拆解

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: HDR 场景下发 3 帧拍照请求HDR 3帧拍照请求帧(478,479 480)HDR 3帧 result callback帧HDR 算法处理5.算法编解码处理HDR 拍照lo…

插入排序:直接插入排序、希尔排序详细说明

插入排序 基本思想:直接插入排序是⼀种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到⼀个已经排好序的有序序列中,直到所有的记录插入完为止,得到⼀个新的有序序列。 在玩扑克牌整理手中…