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

  1. 特定环境的路径

    conda env list

  2. 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包,一般有两种解决办法:

  1. 将安装路径加入到PYTHONPATH环境变量中

export PYTHONPATH=$PYTHONPATH:~/mylibs

执行该命令后,~/mylibs就会被添加到系统的PYTHONPATH环境变量中,其他用户就可以直接使用我们安装的Python包了。

  1. 在sys.path中添加安装路径
    在Python代码中可以使用以下命令将安装路径添加到sys.path中:
    import sys
    sys.path.append('~/mylibs')
    
    这样其他用户也可以使用我们安装的Python包了。

三、使用requirements.txt文件

在实际项目中,我们通常会使用requirements.txt文件记录项目依赖的Python包以及对应的版本号。可以使用以下命令将requirements.txt文件中的Python包安装到指定的安装路径下:

pip install -r requirements.txt --target ~/mylibs
这样,requirements.txt文件中记录的Python包就会被安装到~/mylibs目录下。

  1. conda 安装包路径

    conda安装软件包的路径是~/Anaconda3/pkgs  
    #anaconda默认安装在~/#
    
    所以,在某个环境中下载了包,再到另一个环境中下载同样的包时,
    conda会自动在上面的目录里找,如果有,不会重复下载,
    而是将这个包的site_package下的文件复制到当前环境下。
    和直接pip install 一样了。
    # ~/.conda/envs/EnvName/python3.6/site-packages
    
    使用conda uninstall时,和pip uninstall 一样,
    删除了当前环境site_packages中的包的内容,
    但是在上述目录里面还存在这个包。
    
    

Windows

  1. 特定环境的路径

    conda env list

  2. 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后才会生成。

  1. conda update -n base -c defaults conda : 更新conda版本
  2. conda config --show channelsconda config --show-sources:显示源
  3. conda config
  4. conda config --add channnels [url] :添加源
    conda config --remove channels [url]:删除源
  5. 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

尝试换源,无效
解决

  1. 关闭代理
  2. 删除.condarc文件
posted @ 2024-04-06 10:37  AlexanderOscar  阅读(297)  评论(0编辑  收藏  举报