一文学会Anaconda!

我使用的pytoch版本:

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia

安装放后面了,参考https://blog.csdn.net/wq_ocean_/article/details/103889237

1. 使用conda进行python环境管理

1. 查看conda版本
conda -V
2. 创建环境:
conda create -n your_env_name python=X.X
或者 conda create --name your_env_name python=X.X
3. 查看有哪些conda环境:
conda env list
C:\Users\13276>conda env list
# conda environments:
#
base                     D:\program\anaconda3
CLPDR                    D:\program\anaconda3\envs\CLPDR
CMeKG                    D:\program\anaconda3\envs\CMeKG
English2Chinese          D:\program\anaconda3\envs\English2Chinese
LPRecognition            D:\program\anaconda3\envs\LPRecognition
d2l                      D:\program\anaconda3\envs\d2l
d2l-zh                   D:\program\anaconda3\envs\d2l-zh
neo4j                    D:\program\anaconda3\envs\neo4j
pykg2vec                 D:\program\anaconda3\envs\pykg2vec
pykg2vec38               D:\program\anaconda3\envs\pykg2vec38
stableDiffusion          D:\program\anaconda3\envs\stableDiffusion
4. 切换到某环境:
conda activate your_env_name(虚拟环境名称)
5. 查看环境中的包:
conda list
# packages in environment at D:\program\anaconda3\envs\pykg2vec38:
#
# Name                    Version                   Build  Channel
alabaster                 0.7.12             pyhd3eb1b0_0    defaults
cuda-libraries            11.7.1                        0    nvidia
pytorch                   1.13.1          py3.8_cuda11.7_cudnn8_0    pytorch
pytorch-cuda              11.7                 h16d0643_5    pytorch
python_abi                3.8                      2_cp38    conda-forge
opencv-python             4.7.0.72                 pypi_0    pypi
pandas                    1.2.4            py38hd77b12b_0    defaults
pathlib                   1.0.1              pyhd3eb1b0_1    defaults
pillow                    9.4.0            py38hd77b12b_0    defaults
pip                       23.0.1           py38haa95532_0    defaults 
requests                  2.25.1             pyhd3deb0d_0    conda-forge
torchaudio                0.13.1                   pypi_0    pypi
torchvision               0.14.1                   pypi_0    pypi
tqdm                      4.65.0           py38hd4e2768_0    defaults

用pip安装的包显示的项目build为pypi !!!

6. 在当前环境下安装包:
conda install pip [=指定版本x.x]
7. 在当前环境下删除包:
conda remove pip
8. 退出本环境:
conda deactivate
9. 删除环境:
conda remove -n your_env_name --all
10. 查看某个包是否安装:
conda list xxx #包的名称 

2. 为什么anaconda环境中,还需要用pip安装包,此情况下用pip需要哪些注意项

2.1 在anaconda下用pip装包的原因

尽管在anaconda下我们可以很方便的使用conda install来安装我们需要的依赖,但是anaconda本身只提供部分包,远没有pip提供的包多,有时conda无法安装我们需要的包,我们需要用pip将其装到conda环境里。

2.2 用pip装包时候需要哪些注意事项?

首先,我们需要判断目前我们用的pip指令,会把包装到哪里,通常情况下,pip不像conda一样,他不知道环境,我们首先要确保我们用的是本环境的pip,这样pip install时,包才会创建到本环境中,不然包会创建到base环境,供各个不同的其他conda环境共享,此时可能会产生版本冲突问题(不同环境中可能对同一个包的版本要求不同)

查看pip是不是本环境下的pip:
在这里插入图片描述可以看到是在当前环境pykg2vec38的lib里面,因此该pip位于本环境下

经试验,anaconda4.8版本,在conda create新的环境时,已经默认在新环境装了pip,此时进入该环境后,用pip命令安装的包,默认会装在本环境中,不必担心pip一个包后后会将其他环境的包改变版本的情况)

使用 pip install opencv-pythonpip install torchvisionconda install pytorch 之后查看包安装的位置:

在这里插入图片描述可以看到包都位于本环境中

当然我们自己创建的conda环境里,可能没有pip,此时进入自己的conda环境也会默认用base环境的pip,这就需要我们自己将pip安装入本环境,尽量不要使用base的pip在其他环境装包,这样也会装在base里,有产生版本冲突的可能(上文已讲)。

3 Anaconda根目录的pkgs文件夹和某一环境下的site-packages文件夹的区别,以及使用conda install按照包的总流程

pkgs 文件夹和 site-packages 文件夹分别扮演了不同角色。

pkgs 文件夹位于 Anaconda 的根目录下,它是一个包缓存文件夹,主要用于存储通过 conda 安装的包的缓存文件。
当你使用conda install 命令安装新包时,首先会在 pkgs 文件夹中检查是否存在此包的缓存文件,如果不存在,则从远程仓库下载相应的包。

site-packages 文件夹位于每个 conda 环境的 lib 目录下。它存储了该环境中安装的 Python包。当你在某个环境中使用 conda install 命令安装包时,这些包会被链接到或复制到相应环境的 site-packages文件夹中。

以下是使用 conda install 命令安装包时的整个流程:

首先,conda 会检查当前激活的环境。如果没有激活任何环境,conda 会使用默认的 base 环境。

conda 会检查 pkgs 文件夹中是否已经存在要安装的包。如果存在,将跳过下载步骤;如果不存在,则从远程仓库(如 Anaconda Cloud)下载相应的包。

下载完成后,conda 会将包文件存储到 pkgs 文件夹中,以便于未来的安装操作。

conda 将检查包的依赖关系,并确保所有必要的依赖项都已安装。如果缺少任何依赖项,conda 会自动安装它们。

最后,conda 会将包和其依赖项链接到或复制到当前激活环境的 site-packages 文件夹中。这样,当你在该环境中运行 Python
代码时,你就可以导入并使用这些包了。

4. pip与conda比较:

依赖项检查

pip:不一定会展示所需其他依赖包

安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误

conda:列出所需其他依赖包

安装包时自动安装其依赖项

可以便捷地在包的不同版本中自由切换

环境管理

pip:维护多个环境难度较大

conda:比较方便地在不同环境之间进行切换,环境管理较为简单

对系统自带Python的影响

pip:在系统自带Python中包的更新/回退版本/卸载将影响其他程序

conda:不会影响系统自带Python,并且把python也当成包,确实有点倒反天罡了

适用语言

pip:仅适用于Python

conda:适用于Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++,
FORTRAN

conda结合了pip和virtualenv的功能

5. 配置Anaconda源

通常anaconda的默认源在境外,下载速度会非常慢甚至导致网络错误下载包失败,打开Anaconda
Prompt使用以下方法将清华镜像添加到anaconda

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ 
conda config --set show_channel_urls yes

用conda info命令查看当前channel:
在这里插入图片描述
如果conda install 仍然出现下载速度慢的错误,这个时候可以直接将 C:/User/用户名 目录下 .condarc文件 里面的-default一行删去

6. 合理使用requirement.txt

6.1 问题背景

  1. 有时候我们在网上参考某些项目的时候,通常会给出requirement.txt文件,其中就是包括了本次项目所需要用到的库以及环境,一键配置好这些库函数就显得十分有必要了。
  1. 还有时候我们自己电脑的环境配置好后,需要在另外的机器上写程序,这个时候一键配置也是十分有用,不然一个一个的pip install/conda install还是挺麻烦的/(ㄒoㄒ)/

6.2 解决方案

在使用Python的时候,需要把安装的Package通过requirements.txt导出来,一个命令便可部署新环境。

requirements.txt,是用于记录所有依赖包及其精确的版本号。

6.3 操作步骤

第一步:

pip freeze > requirements.txt

自动生成requirement.txt ,执行成功后,会自动生成requirement.txt文件。

第二步:更换环境,分享项目的同时,带上requirement.txt文件!方便其他人配置。

第三步:安装requirement.txt,执行命令即可一键安装完所需要的第三方库。命令:

pip install -r requirements.txt

或者是conda:
第一步:
激活所配置的环境

activate your_environment

第二步:

 conda env export > environment.yaml

来保存环境的yaml文件
第三步: 当我们想再次创建该环境,可以根据别人提供的.yaml文件复现环境,使用命令即可完成环境配置:

conda env create -f environment.yaml

conda命令——导出当前环境下所使用的包,生成requirements.txt:

conda list -e > requirements.txt  #导出当前环境所有的依赖包及其对应的版本号

conda命令——安装requirements.txt中的包:

conda install --yes --file requirements.txt   #在新的环境中安装导出的包

可以通过扫描项目中的import导出依赖包:

pip install pipreqs
pipreqs ./

在这里插入图片描述查看包的安装位置:

在这里插入图片描述在这里插入图片描述

实测:通过pip install -r requirements.txt 按照的环境同样在本环境中,安装完成之后需要重启pycharm才会刷新环境

7. 清理anaconda

7.1 使用如下命令清除多余的环境:

conda remove -n your_env_name --all

7.2 清除不用的包

当conda使用很久之后,就会在conda安装路径下的pkgs路径下存在很多,而且会占用很多,我看自己机器上已经占用接近100g了,于是其进行清理,使用如下命令:

conda clean -*

在这里插入图片描述当您使用conda安装包时,它会将包及其依赖项下载并缓存在本地。这些缓存文件可能会占用大量磁盘空间,特别是在您使用conda安装了大量包之后。此外,有时您可能已经安装了某些包,但后来不再需要它们,这些未使用的包也会占用磁盘空间。

为了清理这些未使用的包和缓存文件,您可以使用conda的clean命令。这个命令有几个选项,可以帮助您清理不同类型的文件。

conda clean --all

这个命令会清理所有未使用的包以及conda缓存的所有文件,包括已下载的tar文件和不需要的缓存文件。执行此操作后,您的conda环境将回到初始状态,只包含您当前使用的包。

conda clean --packages

这个命令将只清理未使用的包,但不会清理缓存文件。执行此操作后,您的conda环境将仍然包含缓存文件,但不包含未使用的包。

conda clean --index-cache

这个命令将清除conda索引缓存,这是conda用于查找可用包的缓存文件。执行此操作后,第一次运行conda命令时可能会稍微慢一些,因为conda需要重新构建索引缓存文件。

需要注意的是,清理未使用的包可能会导致某些依赖关系发生变化,因此建议在执行此操作之前备份您的环境或使用虚拟环境。另外,在清理缓存文件之前,也建议备份您的环境,以防止意外删除重要的缓存文件。

在这里插入图片描述

-3. 程序入口

对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等。其中C 和 C++ 都需要有一个 main 函数来作为程序的入口,也就是程序的运行会从 main 函数开始。同样的,Java 和 C# 则必须要有一个包含 Main 方法的主类来作为程序入口。

但和C,C++、Java 以及 C# 等有所不同的是,Python属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,python是动态的逐行解释运行,也就是从脚本第一行开始运行,没有统一的入口。

另外我们知道,python文件有两种使用方法:

第一种:直接作为脚本执行
第二种:import到其他的python脚本中被调用(模块重用)执行,也就是作为模块(库)被导入执行

不管是直接运行还是导入,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。但实际使用过程中,python文件作为模块被其它python脚本调用执行的时候,有的代码我们是不希望被运行的。

if __name__ == '__main__' 的作用就是定义这两种情况执行代码的执行方式,在该语句下的代码只有在文件作为脚本直接执行情况下才会被执行,而import到其他脚本中是不会被执行的。

-2. 包,模块,库

在python中每一个以.py结尾的文件都是一个包,所以在我们使用别人的包时,其实是引入别人写的文件啦。值得一提的是,在我们使用import a的过程中,其实就相当于加载或者运行了这个python文件了,如果在a.py文件中有输出语句或者函数调用的话,那么在import a后就会输出该输出语句或者调用该函数了,可以通过__name__查看当前当前运行在哪一个模块里。

举个例子来说:要计算一个圆形的面积,
首先创建一个 param.py文件:

pi = 3.1415926def main():print('pi:', pi)main()

在param.py文件里定义了一个参数 pi,直接执行该文件输出:

pi: 3.1415926

第二步:然后创建 calculate.py 文件,用于计算圆的面积,该文件里边需要用到 param.py 文件中的 pi 参数,需要我们从 param.py 中把 pi 变量导入到 calculate.py 中:

from param import pidef area_calculate(r):s = pi * (r ** 2)return sdef main():print('The area of the circle: ', area_calculate(2))print(__name__)main()

运行 calculate.py(python calculate.py),输出结果:

pi: 3.1415926
__main__
The area of the circle:  12.5663704

从输出结果可以看出,param.py 中的 main 函数也被运行了,实际上我们不希望它被运行。并且在 calculate.py中的__name__=='__main__'
这时我们就可以用if __name__ == '__main__' 对 param.py 做修改:

pi = 3.1415926def main():print('pi:', pi)print(__name__)if __name__ == '__main__':main()

再次运行param.py,输出如下:

__main__
pi: 3.1415926

再次运行 calculate.py,输出如下:

param
__main__
The area of the circle:  12.5663704

可以看出在引入param.py之后,param.py文件中的程序都会运行一遍,因为在calculate.py运行过程中param.py中的__name__ ==param,因此 param.py中的if __name__ == '__main__':没有成立,因此在运行 calculate.py后并没有运行main方法也因此没有打印pi。并且在引入模块之后,运行该模块的代码时__name__是当前模块的文件名(去掉后缀),而运行到主文件的代码时(因为我们习惯于将import放到前面),__name__=='main'

if __name__ == '__main__'就相当于是 Python 模拟的程序入口。Python 本身并没有规定这么写,这只是一种编码习惯。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个。到底哪个入口程序被选中,这取决于__name__的值。而__name__是内置变量,用于表示当前模块的名字。

-1. pip安装

1. 查看已安装的库
pip list
3. pip install  第三方库名称
4. 指定第三方库的版本安装命令:
指定版本号的几种方式:不指定的情况下,默认安装最新的== 指定具体版本号<= 指定最高版本号>= 指定最低版本号< 不高于某版本号> 不低于某版本号pip install  第三方库名称==版本号
5. 查看当前pip源
pip config list
6. 设置清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
7. 临时指定channel:
pip install 包名称 -i https://pypi.tuna.tsinghua.edu.cn/simple   #清华镜像
8. 卸载包
pip uninstall 第三方库名称
9. 查看包安装位置和介绍
pip show packagename

在这里插入图片描述
在conda环境下有时不生效

0. 安装

安装时注意以下几步:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考:
https://blog.csdn.net/yawei_liu1688/article/details/108597939
https://www.cnblogs.com/zhangxingcomeon/p/13801554.html
https://blog.csdn.net/sdywtzymy/article/details/106710134
https://blog.csdn.net/weixin_56197703/article/details/124630222
https://blog.csdn.net/qq_41667743/article/details/128186370
https://blog.csdn.net/wq_ocean_/article/details/103889237
https://blog.csdn.net/qq_42346574/article/details/115235307?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168863775816800182719885%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=168863775816800182719885&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-2-115235307-null-null.142v88insert_down28v1,239v2insert_chatgpt&utm_term=requirement.txt&spm=1018.2226.3001.4187

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新版Bing,翻车了?国内版ChatGPT首发战,打响;L5级仍是梦,特斯拉因自动驾驶市值蒸发2600亿...

本周AI产业界又有哪些新鲜事&#xff1f; ChatGPT 引入ChatGPT的的新版Bing&#xff0c;翻车了&#xff1f; 在微软将引入ChatGPT的新版Bing发布之后&#xff0c;不到48小时便有超过100万人申请使用&#xff0c;全球下载量一夜之间暴增10倍。不得不说&#xff0c;微软此举确实达…

数说故事携手香港城市大学发表顶级国际论文,并获权威「IEEE TCSS期刊」收录

日前&#xff0c;数说故事联合香港城市大学共创的学术论文——《An Empirical Study of User Engagement in Influencer Marketing on Weibo and WeChat&#xff08;微博和微信影响力营销中用户参与度的实证研究&#xff09;》在社会计算顶级国际「IEEE Transactions on Comput…

股权融资的A、B、C、D轮

对于中小企业&#xff0c;民营企业、初创企业而言&#xff0c;融资一直是企业发展中重要的事情&#xff0c;必须要时刻关注的。那么股权融资又是怎样的&#xff1f;股权融资的A、B、C、D轮又是咋回事&#xff1f; 我们经常听到有企业获得融资了&#xff0c;有种子轮、天使轮、A…

PoseiSwap以2500万美元估值,再获新一轮融资

近日&#xff0c;Nautilus Chain 上的首个 DEX PoseiSwap 宣布&#xff0c;其目前已经以 2500 万美元的估值&#xff0c;从 Gate Labs、Emurgo Ventures、Republic以及Cipholio Ventures 等行业顶级投资机构中&#xff0c;获得了新一轮的融资&#xff0c;不过目前该融资的具体数…

ChatGPT提示词工程师教程-转换

总结一下&#xff1a;翻译、语气切换、格式转换、拼写检查和语法检查。 翻译 可以生成通用翻译器。 语气切换 格式转换 拼写检查和语法检查

Springboot接入ChatGPT 续

在之前的文章[1][1]中&#xff0c;原方案的设计&#xff0c;是基于功能实现的角度去设计的&#xff0c;对于功能性的拓展&#xff0c;考虑不全面&#xff0c;结合收到的反馈意见&#xff0c;对项目进行了拓展优化。完成的优化拓展有如下几个方面 固定会话历史消息鉴权拓展 固…

三体运动的程序模拟

前几天看了《三体》&#xff0c;很不错的科幻小说。说到三体&#xff0c;我想到我大学的一个舍友叫王晶,和香港那个导演同名同姓同性别.记得有一次几个同学在一块聊天,有个女生问他:父母为什么给他取名叫晶.他说叫晶是父母希望能有三个太阳守护着他。那时我还很单纯,不会用五行…

由《三体》太阳文明末日场景想到的……

《三体》电视剧正在热播&#xff0c;热度持续不退&#xff0c;豆瓣评分8.6&#xff0c;基本已经预定年度口碑最高的科幻题材剧&#xff1b;除了在国内多个平台播出外&#xff0c;还走出国门&#xff0c;成功“出海”&#xff0c;《人民日报》两会特刊都予以了高度赞扬。 上图红…

(转贴)关于《三体》的天文学

原文地址&#xff1a;http://sonicbbs.eastday.com/topicdisplay.asp?BoardID22&Page2&TopicID1723978 原作者&#xff1a;rottenweed 这一阵在看刘慈欣的《三体》&#xff0c;的确是好科幻小说。不过&#xff0c;再好的科幻小说也仍然是科幻&#xff0c;更何况“硬度…

ChatGPT让职业被取代,不公平优势则让我们成为不可替代!

ChatGPT的横空出世&#xff0c;在业界掀起了惊涛骇浪。专家表示&#xff0c;ChatGPT和相关人工智能技术可能会威胁到一些工作岗位&#xff0c;尤其是白领工作。 自去年11月发布以来&#xff0c;新型聊天机器人模型ChatGPT已经被用于各种各样的工作&#xff1a;撰写求职信、编写…

Amazon亚马逊广告API申请流程

亚马逊广告API申请链接:https://advertising.amazon.com/about-api 首先需要一个该网站的账户 申请页面内容必须英文书写 要符合亚马逊的策略亚马逊链接:https://advertising.amazon.com/API/docs/en-us/get-started/compatibility-versioning-policy

怎么监测facebook上竞争对手的广告

在facebook上投放广告时&#xff0c;我们学习很多营销手段和投放广告知识&#xff0c;也会去查看好的广告案例&#xff0c;以及监测竞争对手的facebook ads。how to spy on competitors facebook ads&#xff1f;有哪些好用又简单操作的工具&#xff1f; facebook ads了解 我们…

Google广告投放技巧,开始Google广告投放

Google 广告是指通过 Google 广告网络在 Google 搜索和其他网站上展示的广告。要投放 Google 广告&#xff0c;您需要使用 Google 广告帐户&#xff0c;并通过 Google 广告平台设置广告活动。 要开始使用 Google 广告&#xff0c;您需要做出以下几步&#xff1a; 在 Google Ad…

Facebook广告投放怎么使用?Facebook广告投放的教程

做跨境电商的&#xff0c;多多少少都离不开广告投放&#xff0c;Facebook广告投放更是很多人的首选&#xff0c;所以东哥今天就来分享一个Facebook广告投放的教程&#xff0c;看完不信你还不会Facebook广告投放&#xff01; Facebook广告投放的教程 1、用科学上网的方式注册一个…

谷歌广告投放,谷歌广告怎么投放?

谷歌广告怎么投放&#xff1f; 谷歌广告的投放流程非常简单&#xff0c;如果你已经开通了谷歌广告账户&#xff0c;按如下7步即可立即开始你的谷歌投放之路。 1、登录Google账号&#xff0c;点击广告系列&#xff0c;选择「新广告系列」 2、选择广告系列目标和类型搜索广告系…

亚马逊中关于店铺广告设定的介绍

1. Visibility Advertising &#xff1a; Sponsored Products 作用&#xff1a;增加可见率及转化率 页面&#xff1a;检索结果页及产品页 方法&#xff1a;设置关键字及产品 付费&#xff1a;按点击付费或者PPC付费 设置方法&#xff1a; – 手动设置&#xff1a;卖家手动设置…

亚马逊广告投放策略卖家们知多少?

关于投放策略&#xff0c;分阶段执行会更加高效。特别是推新品&#xff0c;可分成初始期、成长期和成熟期几个阶段&#xff0c;通过自动/手动以及否定投放等策略有目的性的进行推广。 1、自动/手动投放 初始期&#xff1a;可利用商品推广&#xff0c;进行广告分组&#xff0c…

亚马逊站内广告

对于大部分卖家来说&#xff0c;在亚马逊的运营中&#xff0c;站内广告是必不可少的推动产品销量上升和成为爆款的工具。 亚马逊在站内广告的投放上有两种投放方式&#xff1a;自动广告和手动广告。 PPC全名pay-per-click&#xff0c;也就是点击付费的意思&…

亚马逊运营,如何调整你的广告和自然订单占比?

比如&#xff0c;我的一款产品&#xff0c;现在已经是小类目排名第一&#xff0c;但让我痛苦的是&#xff0c;出单主要是广告单&#xff0c;自然订单很少&#xff0c;导致这种情况的主要原因是什么呢&#xff1f;我该如何优化来提高自然单的比例呢&#xff1f; 这样的情况还真…

跨境电商卖家如何创建客户参与的 Facebook 广告?

关键词&#xff1a;跨境电商卖家、客户参与、Facebook广告 想要从您的 Facebook 广告中获得更多潜在客户或转化&#xff1f;正在寻找为您自己的广告建模的成功秘诀&#xff1f; 在本文中&#xff0c;您将了解创建消费者响应的 Facebook 广告的八个技巧。 将您现有的 Facebook 受…