一文学会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装包的原因

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

查看pip是不是本环境下的pip:
可以看到是在当前环境pykg2vec38的lib里面,因此该pip位于本环境下

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

可以看到包都位于本环境中

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

4. pip与conda比较:

5. 配置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 问题背景

6.2 解决方案

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文件有两种使用方法:

不管是直接运行还是导入,最顶层的代码都会被运行(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

本文链接:https://my.lmcjl.com/post/4536.html

展开阅读全文

4 评论

留下您的评论.