pip 是从 PyPI 上直接下载,他仅仅是简单地下载而已,不能包含某些包必要的依赖文件。
Conda 没有语言限制,可以构建和管理任何语言的任何类型的软件,这其中也包括 Python。conda 旨在管理任何软件堆栈中的包和依赖关系,其安装过程中,会提示哪些包与当前所要安装的包之间有依赖关系,并且会自动安装和更新,用起来会更靠谱。
conda env list
或 conda info --env
*
标记的是当前环境;()中也可以看到当前环境base是默认环境
conda list -n 虚拟环境名
conda list
conda list -n 虚拟环境名 包名
指定环境名字
conda create --name 虚拟环境名
或
conda create -n 虚拟环境名
不知为何,不能同时指定目录和名字
另外,这个命令练练手就行,新建的环境里啥都没有……也不好配置……一般都是加上 指定python版本
指定目录新建
conda create --prefix 虚拟环境路径
指定python版本和多个包
conda create -n 虚拟环境名 python=3.9 scipy=0.17 numpy=1.21
不需要指定包的话,去掉后面的
scipy=0.17 numpy=1.21
不安装默认依赖包
conda create --no-default-packages -n myenv python
最好装上,不会占很多空间
conda activate 虚拟环境名
conda deactivate
如果只是想回到 base环境,可以直接
conda activate
(不指定环境名就会直接到base环境)
conda create --name 虚拟环境名2 --clone 虚拟环境名1
conda remove --name myenv --all
将被复制的环境的依赖包信息导出到 requirements.txt:
conda list --explicit > requirements.txt
在目标机器和位置根据 requirements.txt 的依赖包信息创建环境:
conda create --name myenv --file requirements.txt
在已有环境导入 requirements.txt 文件中的依赖包:
conda install --name myenv --file requirements.txt
yml
文件新建环境conda env create -f environment.yml
conda env update --prefix ./env --file environment.yml --prune
--prune
:该选项使 conda 从环境中删除不再需要的任何依赖项。
conda env export > environment.yml
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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes
conda config --get channels
直接 重命名 虚拟环境文件夹(大概位置在:Anaconda3\envs\虚拟环境名
) 的名字即可。
貌似用命令行也可以搞,不过咱Windows系统设计出来不就是为了图形化可点击方便嘛
正解:
命令:conda create --prefix="之前的python的环境位置" python=你自己的python版本
之前的python的环境位置
一般就是:E:\python
这个文件夹里很多文件,python.exe、python的库等也在这个文件夹的子文件夹里
你自己的python版本
要写你自己的python对应版本,如:python=3.8.2
双击运行 python.exe 即可看到自己的 python版本
例:
conda create --prefix="E:\python" python=3.8.2
有点将之前的 python环境 注册到 conda 的意思。
错误方法:
直接将
python所有文件 (E:\python)
复制到Anaconda3\envs\
❌。
conda env list
识别不出来这个环境。只复制
python\site-packages
到Anaconda3\envs\某个虚拟环境名\ ... \site-packages
❌。没试,但参考原博主说有Warning。
conda create -n 虚拟环境名
新建 之后,将python所有文件
复制到Anaconda3\envs\虚拟环境名
里。❌。这样虽然
conda env list
能识别到该环境, 且不影响正常使用对应的 python和python库,但是激活该环境并使用conda list
显示依赖库的时候是空的。(对比正常的conda虚拟环境,作者发现 conda-meta文件夹里少了一些 json文件)
对。
运行根目录不一样
权限不一样。
当你用管理员模式打开 Anaconda Powershell Prompt (Anaconda3) 然后用conda命令新建虚拟环境的时候,才是新建到 Anaconda 目录 下的 envs文件夹 下。
用非管理员模式新建,会 新建到 该电脑用户的文件夹( 如:C:\Users\86150\.conda\envs\
) 下。
建议用设置默认以管理员模式打开,让妖魔鬼怪离开C盘!!
可以参考这篇文章:windows 如何设置 程序/软件 默认以管理员身份打开?
右击 Anaconda Powershell Prompt (Anaconda3)快捷方式——属性——起始位置框 的 内容修改为自定义目录,如:E:\Anaconda\
(不用加双引号)
cmd 出现 ”不是内部或外部命令……“ 的时候,一般都是因为没有添加其到系统环境变量。
右击 此电脑——属性——高级系统设置——环境变量——系统变量的Path变量
栏双击然后新建添加以下内容:
E:\Anaconda3
E:\Anaconda3\Scripts
E:\Anaconda3\Library\bin
需要装两个包:
base环境:conda install nb_conda
这样打开jupyter notebook的时候,新建文件按钮 里就有 不同的虚拟环境 选项了。
确保想使用的不同的虚拟环境中有 ipykernel
包:conda install ipykernel
而且,每个不同的虚拟环境都需要安装 jupyter。(如果用 conda 命令安装了 ipykernel包 的话,其他的依赖包,如 jupyter 都会给安装上,所以 conda 真的很省心!!)
然后在Jupyter notebook里就可以随便换环境用了✌✌:
Reference:
Managing environments — conda User guide documentation