应对人工智能时代变化
python基础
https://www.runoob.com/python3/python-qt.html 。菜鸟教程,上面还有一些量化的教程
community
任何学习都离不开好的社区进步,好的社区可以帮助少走很多弯路,也有很多志同道合的小伙伴和能够更供初学者充分学习的项目,这边推荐几个跟AI相关的社区:
在 AI 领域,大模型的下载对于研究和开发至关重要。然而,由于网络环境的特殊性,国内用户往往难以直接访问 Huggingface.co 来获取所需资源。幸运的是,国内也有多个平台提供了优秀的替代方案。以下是一些值得推荐的国内大模型下载途径:
- Hugging Face, 一个很好的社区,有很多项目可以看代码学习,还有框架文档,demo之类的可以入门。
- huggingface 镜像站,网址:hf-mirror.com,特点:这个镜像站为用户提供了一种简便快捷的方式来下载热门模型。网站首页详细介绍了使用方法,操作简单,下载速度令人满意。
- 阿里巴巴的模搭社区,网址:modelscope.cn 。特点:模搭社区是国内活跃度极高的模型共享平台,它不仅提供了丰富的模型分享,还支持数据集共享、在线运行环境创空间以及在线 notebook 等功能。此外,模搭社区的公众号经常发布高质量的技术文章,是 AI 爱好者的知识宝库。 (这个还需要去申诉一下手机号)。,邮箱绑定的是 498938874@qq.com
- Gitee AI,网址:ai.gitee.com 。特点:作为国内知名的代码托管平台,Gitee 的 AI 子站目前虽处于测试阶段,但已提供了众多模型的下载服务,并且下载速度迅速,对于国内开发者来说是一个便捷的选择。
- 始智AI wisemodel 。网址:wisemodel.cn 。特点:wisemodel 是国内另一个值得关注的模型共享平台,它提供了丰富的模型资源,下载速度同样令人满意,为国内用户提供了另一种优质的选择。
- AI快站。 网址:aifasthub.com 。特点:AI快站是一个专注于提供HuggingFace模型免费加速下载服务的平台,旨在为AI开发者解决大模型下载中的常见问题。网站有具体的使用方法。
这个情感分析可以抽时间看看:https://ai.gitee.com/apps/Eric_Wu_39/gupiaofenxiyulianghuahuicezhushou
roadmap
discussions
课程
对话数据
- 问答宝问的问题记录整理一下
好文
- Transformer算法完全解读 这篇文章写的挺不错的,可以深入学习。
问题记录
Python环境管理方式总结
本文由 简悦 SimpRead 转码, 原文地址 jinli.io
用 venv/conda/mamba 等工具管理 Python 环境
Python 环境管理方式总结
用 venv/conda/mamba 等工具管理 Python 环境
缘起
在使用 Python 开发时,遇到了很多配置环境的情形。有时需要安装不同版本的 Python,有时需要安装不同的 Python 包,有时需要安装不同的 Python 包的不同版本。
最开始使用时我基本上都是看网上的教程,不同的 Python 项目可能使用不同的环境管理工具,不知不觉就用过了pip
、conda
、mamba
、virtualenv
、venv
等等。这些工具各有优劣,有时候我也会混用,导致环境变量混乱,有时候还会出现冲突。
由于一直没有什么一致性,导致电脑上的 Python 环境比较乱,我自己也感觉云里雾里的,所以我打算总结一下这些工具的使用方法,以及它们的优缺点。最后会给出我自己推荐的一些使用方法。
Python 管理工具分类
Python 管理工具可以分为两类:
包管理工具:用于安装、卸载、更新 Python 包,如
pip
、conda
、mamba
等。环境管理工具:用于管理 Python 环境,如
venv
、virtualenv
、conda
、mamba
等。
我们这里主要讨论环境管理工具,因为包管理工具的使用方法比较简单,而且大多数情况下我们都会使用pip
,所以这里不再赘述。
之前我也写过一篇关于 Linux 下使用module
管理软件包和环境变量的文章,可以参考 “Linux 下使用 module 管理软件包和环境变量”
环境管理工具
venv
venv
是 Python 自带的环境管理工具,其使用起来是最简单,也是最不需要操心的。
使用方法
创建一个新的环境:
这样就会在当前目录下创建一个
.venv
的文件夹,里面包含了一个新的 Python 环境。当然,这里的.venv
可以替换成任何你想要的名字,用.venv
是因为这样可以创建一个自动隐藏的文件夹,在 git 中也很容易把它忽略掉。注意,这里的
python
是你想要创建环境的 Python 版本,如果你有多个 Python 版本,可以使用python3
或者python3.10
等。激活这个环境:
如果是 Linux 系统或者 MacOS 系统,可以使用如下命令:
如果是 Windows 系统,可以使用如下命令:
安装 Python 包:
在激活环境之后,使用
pip
安装 Python 包会把包安装到这个环境中,而不是全局环境。安装的包会放在.venv/lib/python3.10/site-packages
目录下。退出环境:
在环境中使用
deactivate
命令可以退出环境。
优缺点
优点:
- 原生工具,简单易用,不需要安装额外的软件。
- 速度快,因为不需要下载额外的软件包。
- 环境隔离,不会影响全局环境。
- 可以在任何地方创建环境,不需要管理员权限。
- 每个项目中的环境都在本项目目录下,与其他项目做到了物理隔离,不易弄混。
缺点:
- 每个项目都需要创建一个新的环境,如果有很多项目,会占用很多空间。
- 无法共享环境,如果有多个项目使用同一个环境,需要重复创建。
- 不好切换 Python 版本,每个环境都是一个 Python 版本,无法切换。
- 只适用于 Python 3.3 及以上版本。
简单来说,如果你不在意空间占用,不需要切换 Python 版本,那么venv
是一个很好的选择。
virtualenv
由于venv
有很大的占用空间的问题,所以有人开发了virtualenv
,它是一个第三方的环境管理工具,可以解决venv
的一些问题。
virtualenv
的使用方法和venv
基本一样,只是需要安装virtualenv
这个包。
使用方法
安装
virtualenv
:创建一个新的环境:
如果你想指定 Python 版本,可以使用如下命令:
1
python -m venv .venv
激活这个环境的方式和
venv
一样。安装 Python 包的方式和
venv
一样。
但它和venv
的区别在于,virtualenv
会复用系统的 Python 库,不会重复安装,所以占用的空间会小很多。如果你不想复用系统的 Python 库,可以使用--no-site-packages
选项,在本项目中安装全新的 Python 库。
- 退出环境的方式和
venv
一样。
优缺点
优点:
- 可以指定 Python 版本。
- 可以共享环境,不需要重复创建。
- 占用空间小,不会重复安装 Python 库。
- 适用于 Python 2.7 及以上版本。
缺点:
- 非原生工具,需要安装额外的软件。
简单来说,如果你在意空间占用,且想要和venv
相似的使用体验,那么virtualenv
是一个很好的选择。
conda
conda
是一个非常强大的环境管理工具,它不仅可以管理 Python 环境,还可以管理其他语言的环境,如 R、Julia 等。
conda、Anaconda、miniconda、mamba、micromamba 之间的关系
conda
是 Anaconda 的一部分,Anaconda 是一个数据科学家常用的工具包,里面包含了很多数据科学家常用的软件包,如numpy
、pandas
、scipy
等。但有用户反映 Anaconda 安装的软件包太多,占用空间太大,所以有人开发了miniconda
,它是 Anaconda 的精简版,只包含了conda
和一些基本的软件包。不管是 Anaconda 还是 miniconda,都是使用
conda
这个包管理工具来管理环境,但conda
在安装软件包时是单线程的,速度比较慢,所以有人开发了mamba
,它是conda
的一个加速版,速度比conda
快很多。mamba
和conda
的使用方法基本一样,只是在安装软件包时使用mamba
代替conda
。用户基本可以认为,mamba
命令是conda
命令的一个别名。micromamba
是mamba
的一个精简版,micromamba
的base
环境是空的,不包含任何软件包。
conda 的原理(也适用于 mamba)
conda
环境管理工具会在用户的家目录下创建一个.conda
文件夹,里面包含了所有的环境,每个环境都是一个文件夹,里面包含了一个 Python 环境和一个软件包列表。用户每创建一个新的环境,
conda
环境管理工具就会在.conda
文件夹下创建一个新的文件夹,里面包含了一个新的 Python 环境和一个新的软件包列表。用户每安装一个新的软件包,conda
包管理工具就会把这个软件包安装到对应的环境中。用户每激活一个环境,
conda
环境管理工具就会把这个环境的 Python 环境和软件包列表添加到环境变量中,用户每退出一个环境,conda
环境管理工具就会把这个环境的 Python 环境和软件包列表从环境变量中删除。创建好的
conda
环境跟某个项目无关,用户可以在任何地方激活这个环境,不需要在项目目录下创建环境。
使用方法(以mamba
为例)
安装
conda
或者mamba
:你可以在
miniforge
找到最小化的conda
或者mamba
安装包,下载安装即可。创建一个新的环境:
这里的
myenv
是环境的名字,python=3.10
是指定 Python 的版本。激活这个环境:
安装 Python 包:
退出环境:
优缺点
优点:
- 可以指定 Python 版本。
- 可以共享环境,不需要重复创建。
- 可以安装其他语言的环境。
- 速度快,因为有
mamba
这个加速版。 - 可以在任何地方激活环境,不需要在项目目录下创建环境。
- 可以共享软件包,不需要重复下载。
缺点:
- 非原生工具,需要安装额外的软件。
- 环境跟具体项目是分离的,对于较久未使用的环境,可能会忘记这个环境是干什么的。对于较久未使用的项目,可能会忘记这个项目使用的是哪个环境。
简单来说,如果你想要一个强大的环境管理工具,而且想要安装包时速度快,那么conda
或者mamba
是一个很好的选择。但在开发某个项目时,最好标注一下这个项目使用的是哪个环境,以免忘记。
冻结环境
无论使用哪种环境管理工具,都可以使用pip freeze
命令来冻结环境,即把当前环境的软件包列表保存到一个文件中。
1 |
|
这样就会在当前目录下创建一个requirements.txt
文件,里面包含了当前环境的软件包列表。当你需要在另一个环境中安装这些软件包时,可以使用如下命令:
这样就会安装requirements.txt
文件中列出的所有软件包。
总结
- 如果你不在意空间占用,适用高于 3.3 版本的 Python,不需要切换 Python 版本,只想要一个最简单的环境管理工具,那么
venv
是一个很好的选择。 - 如果你在意空间占用,想要共享环境,适用于 2.7 及以上版本的 Python,那么
virtualenv
是一个很好的选择。 - 如果你想要一个强大的环境管理工具,想要安装包时速度快,那么
conda
或者mamba
是一个很好的选择。
推荐的使用方法
- 如果你不在于空间占用,且可能用到很多科学计算的包,在你的主力开发电脑上,可以安装
Anaconda
。 - 如果你在意空间占用,只想在需要时安装包,可以在你的主力开发电脑上安装
micromamba
。 - 如果你不在意空间占用,在你的测试电脑上,或者在你的服务器上,可以使用
venv
。