当前位置: 首页 > news >正文

[git] github管理项目之环境依赖管理

导出依赖到 requirements.txt

pip install pipreqs
pipreqs . --encoding=utf8 --force

但是直接使用pip安装不了torch,需要添加源!!

pip install -r requirements.txt -f https://download.pytorch.org/whl/torch_stable.html

想到一个麻烦的解决方法

  1. conda env export > environments.yml 导出环境
  2. 然后把 conda 部分和 pip 部分分开,pip部分放进去 requirements.txt 里面
  3. 然后再手动安装
# please run these commands manually in your terminal
conda env create -f environment.yml
conda activate Multi-OSCCPI
pip install torch==1.13.0+cu116 torchvision==0.14.0+cu116 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt 

python 项目中 setup.py 文件的作用是什么

参考:

  1. https://zhuanlan.zhihu.com/p/276461821

包分发的始祖:distutils

distutils 是 Python 的一个标准库,从命名上很容易看出它是一个分发(distribute)工具(utlis),它是 Python 官方开发的一个分发打包工具,所有后续的打包工具,全部都是基于它进行开发的。distutils 的精髓在于编写 setup.py,它是模块分发与安装的指导文件。

如果一个项目使用 python setup.py install 来安装依赖,那么这个项目的安装方法是通过源码安装。相反,与之对应的是通过二进制软件包的安装。

  • 这里整个项目都是一个包!

分发工具升级:setuptools

setuptools 是 distutils 增强版,不包括在标准库中。其扩展了很多功能,能够帮助开发者更好的创建和分发 Python 包。大部分 Python 用户都会使用更先进的 setuptools 模块。

distribute,或许你在其他地方也见过它,这里也提一下。

distribute 是 setuptools 有一个分支版本,分支的原因可能是有一部分开发者认为 setuptools 开发太慢了。但现在,distribute 又合并回了 setuptools 中。因此,我们可以认为它们是同一个东西。

因此,setuptools 是一个优秀的,可靠的 Python 包安装与分发工具。

源码包与二进制包什么区别?

Python 包的分发可以分为两种:

1、以源码包的方式发布

源码包安装的过程,是先解压,再编译,最后才安装,所以它是跨平台的,由于每次安装都要进行编译,相对二进包安装方式来说安装速度较慢。

2、以二进制包形式发布

二进制包的安装过程省去了编译的过程,直接进行解压安装,所以安装速度较源码包来说更快。

由于不同平台的编译出来的包无法通用,所以在发布时,需事先编译好多个平台的包。

二进制包的常见格式有:

在这里插入图片描述

eggs 与 wheels 有什么区别?

Egg 格式是由 setuptools 在 2004 年引入,而 Wheel 格式是由 PEP427 在 2012 年定义。Wheel 的出现是为了替代 Egg,它的本质是一个zip包,其现在被认为是 Python 的二进制包的标准格式。

以下是 Wheel 和 Egg 的主要区别:

  • Wheel 有一个官方的 PEP427 来定义,而 Egg 没有 PEP 定义
  • Wheel 是一种分发格式,即打包格式。而 Egg 既是一种分发格式,也是一种运行时安装的格式,并且是可以被直接 import
  • Wheel 文件不会包含 .pyc 文件
  • Wheel 使用和 PEP376 兼容的 .dist-info 目录,而 Egg 使用 .egg-info 目录
  • Wheel 有着更丰富的命名规则。
  • Wheel 是有版本的。每个 Wheel 文件都包含 wheel 规范的版本和打包的实现
  • Wheel 在内部被 sysconfig path type 管理,因此转向其他格式也更容易
  • wheel 包可以通过 pip 来安装,只不过需要先安装 wheel 模块,然后再使用 pip 的命令。

如何编写setup.py文件?

http://www.lryc.cn/news/457754.html

相关文章:

  • 【STM32 Blue Pill编程实例】-SD卡文件读写(SPI接口)
  • 为什么需要软件测试?
  • 成为超人:普通人如何白手起家,富一代和富二代的根本区别是什么?
  • Java 集合 Collection常考面试题
  • C++继承与菱形继承(一文了解全部继承相关基础知识和面试点!)
  • 谷歌DeepMind 德米斯·哈萨比斯 因蛋白质预测AI荣获诺贝尔化学奖
  • 内网笔记大全
  • peft.LoraConfig()参数说明
  • 串口(UART)的FPGA设计(接收与发送模块)
  • JSON 格式化工具:快速便捷地格式化和查看 JSON 数据
  • 【星汇极客】STM32 HAL库各种模块开发之1.8TFT屏幕
  • Excel中使用SQL语句的四种方法
  • 目标检测中的损失函数
  • list库实现
  • MFC工控项目实例二十三模拟量输入设置界面
  • 排序算法总结(三)希尔排序
  • 如何迁移 Linux 服务器 第一部分 - 系统准备
  • 网络IO模型都有哪些
  • 数据结构: 数组在算法中的应用
  • js快速转换时间(时间戳转换成年月日时分秒)
  • LeetCode15.三数之和
  • SpringBoot3.3 优雅启停定时任务
  • 数据结构之二叉搜索树(key模型与key_value模型)
  • 图说几何学2300年重大错误:附着在直线z上的直线段必是z的一部分
  • 汽车网关(GW)技术分析
  • Telnet命令详解:安装、用法及应用场景解析
  • C++之LIST模拟实现(代码纯享版)
  • 华为OD机试 - 括号匹配 - 栈(Python/JS/C/C++ 2024 E卷 100分)
  • 打破欧美10年芯片垄断,杨振宁教授关门弟子,仅用三年创造奇迹
  • OpenCV视频I/O(20)视频写入类VideoWriter之用于将图像帧写入视频文件函数write()的使用