我使用的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-python
,pip install torchvision
, conda 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 评论