Anaconda 操作
自定义环境安装路径
查看环境和环境所在的位置:conda info --envs
|conda env list
查看conda的配置信息:conda config --show
展示conda 的所有设置,主要看envs_dirs,表示环境的安装位置。第一个为默认安装路径
修改环境安装路径:
方式一: 设置默认路径
# 增加环境路径
conda config --add envs_dirs [本地安装路径] # envs_dirs是变量,照抄
# 检查是否增加成功
conda config --show
# 删除环境路径
conda config --remove envs_dirs [安装路径] # envs_dirs是变量,照抄
方式二: 修改.condarc文件
.condarc 路径:用户目录下
直接在文件后追加内容:
envs_dirs:
- [安装绝对路径]
方式三:临时修改安装路径
conda create --prefix=...\new_env
conda与pip安装包路径问题
Linux
- 特定环境的路径
conda env list
- pip 安装包路径
一:正式环境中 1. pip pip3 安装的包在下面路径(pip指向了python3.6解释器) ~/.local/lib/python3.6/site-packages/ 2. pip2 安装的包在下面路径下 ~/.local/lib/python2.7/site-packages/ 3. pip3.5 安装的包在下面路径下 ~/.local/lib/python3.5/site-packages/ 二:虚拟环境中 pip 安装的包在下面路径下 ~/.virtualenvs/虚拟环境名目录/lib/python3.5(或python2.7或python3.6)/site-packages
pip是Python语言中的一个包管理工具,通过pip我们可以安装、升级、卸载Python包。在这个过程中,pip默认会将Python包安装到系统的全局路径下,但是很多时候我们需要将Python包安装到指定的路径下,这里就介绍一下pip install安装路径的相关内容。
一、指定安装路径
默认情况下,pip会将Python包安装到系统的全局路径下,比如在Linux系统下是/usr/local/lib/python3.8/site-packages/。但是我们可以通过在pip install命令后面添加--target参数指定安装路径。例如,我们要将numpy包安装到当前用户目录下的mylibs目录下,可以使用以下命令:
pip install numpy --target ~/mylibs
这样,numpy包就会被安装到~/mylibs目录下。
二、加入环境变量
在默认情况下,安装到全局路径下的Python包是可以被所有用户访问到的。但是如果我们使用--target
参数指定了安装路径,那么其他用户就无法直接访问到这些Python包了。
为了让其他用户也可以使用我们安装的Python包,一般有两种解决办法:
- 将安装路径加入到PYTHONPATH环境变量中
export PYTHONPATH=$PYTHONPATH:~/mylibs
执行该命令后,~/mylibs就会被添加到系统的PYTHONPATH环境变量中,其他用户就可以直接使用我们安装的Python包了。
- 在sys.path中添加安装路径
在Python代码中可以使用以下命令将安装路径添加到sys.path中:
这样其他用户也可以使用我们安装的Python包了。import sys sys.path.append('~/mylibs')
三、使用requirements.txt文件
在实际项目中,我们通常会使用requirements.txt文件记录项目依赖的Python包以及对应的版本号。可以使用以下命令将requirements.txt文件中的Python包安装到指定的安装路径下:
pip install -r requirements.txt --target ~/mylibs
这样,requirements.txt文件中记录的Python包就会被安装到~/mylibs目录下。
-
conda 安装包路径
conda安装软件包的路径是~/Anaconda3/pkgs #anaconda默认安装在~/# 所以,在某个环境中下载了包,再到另一个环境中下载同样的包时, conda会自动在上面的目录里找,如果有,不会重复下载, 而是将这个包的site_package下的文件复制到当前环境下。 和直接pip install 一样了。 # ~/.conda/envs/EnvName/python3.6/site-packages 使用conda uninstall时,和pip uninstall 一样, 删除了当前环境site_packages中的包的内容, 但是在上述目录里面还存在这个包。
Windows
- 特定环境的路径
conda env list
- pip /conda 安装包的路径
Path_to_Conda\Lib\site-packages
终端中运行下面命令,查找site-packages目录 python -c "import site;print(site.getsitepackages())" 或者 python -m site 或者 pip shwo 包名 #查看包安装在哪
给出一个手动安装库的代码:
常见操作
创建环境:
conda create -n your_env_name python=X.X
# 或
conda create --name your_env_name python=X.X
包的安装、删除、环境删除:
conda install [package] #安装包
conda remove [package] #删除包
conda update [package] #更新包
conda remove -n your_env_name --all # 删除环境
更新源
.condarc源文件
windows存储路径:
C:\Users\username.condarc
Linux存储路径:
~/.condarc
.condarc存在与个人用户的目录下,在初次安装conda并不会生成,在运行完conda config
后才会生成。
conda update -n base -c defaults conda
: 更新conda版本conda config --show channels
或conda config --show-sources
:显示源conda config
conda config --add channnels [url]
:添加源
conda config --remove channels [url]
:删除源conda config --set [property] [property_value]
换源操作
- 运行
conda clean -i
清除索引缓存,保证用的是镜像站提供的索引。 conda config --add channels [url]
添加源
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
环境备份
# 环境克隆=环境改名
`根据已有环境名复制生成新的环境`:
1. 假设已有环境名为A,需要生成的环境名为B:
conda create -n B --clone A
2. 假设已有环境路径为D:\A,需要生成的新的环境名为B:
conda create -n B --clone D:\A
# 环境备份
1. 环境备份:激活目标环境,执行命令:`conda env export > envName.yml`,即可把所在环境信息导出到yml文件当中。
2. 环境恢复:打开yml文件所在的文件夹,执行命令:`打开yml文件所在的文件夹,执行命令:conda env create -f envName.yml [-n newEnvName]`
# 使用旧环境名
conda env create -f envName.yml
# 指定新环境名
conda env create -f envName.yml -n newEnvName
环境导出
Conda环境导出的目的是将已配置的环境保存到文件中,以便在其他地方或不同系统上重新创建相同的配置。以下是导出Conda环境的步骤:
一、Conda环境导出
激活要导出的环境。确保您已激活想要导出的Conda环境。您可以通过运行以下命令来激活环境:
conda activate environment_name
运行导出命令。在激活的环境中,运行以下命令将环境导出到文件中:
conda env export > environment.yml
这将创建一个名为“environment.yml”的文件,其中包含当前环境的所有包和版本信息。该文件可用于在另一台机器上重新创建相同的配置。
二、Conda环境导入
Conda环境导入的目的是在另一台机器上重新创建已保存的环境配置。以下是导入Conda环境的步骤:
-
创建新环境。在目标机器上,创建一个新的Conda环境,用于接收导入的配置。您可以使用以下命令创建新环境:
conda create -n new_environment_name
-
激活新环境。在新环境中,激活该环境以准备导入配置:
conda activate new_environment_name
-
导入配置文件。将之前导出的“environment.yml”文件复制到目标机器上,并将其放置在合适的位置。然后,运行以下命令导入配置文件:
conda env create -f environment.yml
这将根据“
environment.yml
”文件中的信息安装所需的软件包及其正确版本,从而重新创建相同的环境配置。
实例
查找.condarc文件
在Ubuntu用户家目录下中并未发现,通过
conda config
生成,并添加清华源
- cd ~
- ls -a
- conda config
- ls -a
- cat .condarc
.condarc源文件
windows存储路径:
C:\Users\username.condarc
Linux存储路径:
~/.condarc
.condarc存在与个人用户的目录下,在初次安装conda并不会生成,在运行完conda config
后才会生成。
手动装包
在尝试配置项目环境时,发现所装包的版本太老,conda源里没有相应的版本
所需包:torch==1.5.0 torchvision==0.6.0
https://download.pytorch.org/whl/torch_stable.html——.whl类型的下载文件
whl格式本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件。使得可以在不具备编译环境的情况下,选择合适自己的python环境进行安装。
安装方法很简单,进入命令行输入
pip install xxxx.whl
或者如果是升级
pip install -U xxxx.whl
通过寻找对应的包进行下载,并在Linux上进行安装,完成手动装包过程。
问题
>>> conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
Collecting package metadata (current_repodata.json): done
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.
Solving environment: unsuccessful attempt using repodata from current_repodata.json, retrying with next repodata source.
Collecting package metadata (repodata.json): failed
尝试换源,无效
解决
:
- 关闭代理
- 删除.condarc文件