Python切换虚拟环境(python虚拟环境conda)
在emacs上使用Python虚拟环境
使用的是purcell的 基础配置 。在不使用该配置的情况下也有可能出现类似的问题。
使用的Python环境管理是 conda
详细情况记录在这个 issue 上。
一开始使用anaconda-mode自带的切换方式, M-x pythonic-activate RET /path/to/virtualenv RET ,发现在 Python Shell 、 pdb 和 flycheck 上分别使用了不同的虚拟环境。
后续分别尝试了 direnv.el 插件和 purcell 的 envrc.el 插件。这两个插件都是基于 direnv 工作的。
direnv 是一个 shell 扩展,可以根据 shell 进入的目录不同,加载和卸载环境变量。这个 主页 可以看到 direnv 的安装方式。这个 wiki 包含的使用方法和与其他工具的集成,包括了如何切换Python的虚拟环境的 方法 。
使用这个插件,我发现需要在一个 .envrc 文件的目录下打开 emacs 才能正常使用。如果不是在该环境下,虚拟环境的自动切换并不起作用。一旦生效了,切换目录时,虚拟环境会自动切换,并且在上述的三个环境中都可以使用相同的环境。特别的,在 python shell 中,只需要 exit() ,重新再 C-c C-p 就可以在新环境中运行。
会出现第一次打开一个存在.envrc文件目录的文件时,虚拟环境不起作用。此时手动 M-x envrc-allow RET 才能生效。此时切换工作目录可以自动切换虚拟环境。但是特别的,在 python shell 中,需要完全kill掉buffer,重新再 C-c C-p 才可以在新环境中运行。
jupyter多个虚拟环境间切换
jupyter只需安装一个即可。用conda(不管是Anaconda还是Miniconda)一般会创建多个虚拟环境,这些环境中的python版本以及各种库的配置和版本也都是不一样的,此时我们希望jupyter能为每个虚拟环境单独处理!
下面从用conda安装虚拟环境开始,以pytorch的安装作为测试。下面都是Miniconda下进行的。
初始:从Anaconda Prompt中打开cmd,此时显示的初始conda环境为(base)环境!
创建命令:conda create -n pytorch_gpu
效果:创建的名为pytorch_gpu的虚拟环境会在暗转的Miniconda下的envs文件夹中!
激活命令:conda activate pytorch_gpu
效果:环境从(base)变为(pytorch_gpu);说明已经进入成功;
安装命令:conda install pytorch torchvision torchaudio cudatoolkit=11.0 -c pytorch
效果:把pip、numpy、cudatoolkit、pywin32都一并安好
进一步安装命令:
退出命令:conda deactivate
效果: 环境从(pytorch_gpu)变回(base);说明已经退出成功;
注:退出命令不需要后面跟“虚拟环境名”,因此此时已经在环境内了。
(1)安装必备的包:pip install ipykernel
(2)为虚拟环境创建kernel文件:conda install -n 环境名称 ipykernel
(3)在jupyter中激活这个kernel文件:python -m ipykernel install --user --name 环境名称 --display-name '显示的名称'
(4)验证是否创建对了:主要查看python的版本号 + 特殊的库
注:创建好jupyter notebook的 'pytorch_gpu' 虚拟环境后,可以在 任何地址 处创建.ipynb文件! 即 ' 虚拟环境的创建位置 ' 与 '相应的.ipynb文件的创建位置' 是不一样的!
一系列验证命令:
conda基本命令及python的虚拟环境
查看版本号 :conda --version
查看所有包 : conda list
安装模块包 :conda install package
卸载模块包 :conda uninstall package
升级所有包 : conda upgrade --all
创建虚拟环境 :conda create -n EnvName python=3.7 (版本号)
切换虚拟环境 :activate EnvName
查看虚拟环境 :conda env list
退出虚拟环境 :deactivate
删除虚拟环境 :conda remove -n EnvName --all
导入 :conda EnvName export environment.yaml
导出 :conda EnvName create -f environment.yaml
安装 :
pip install virtualenv
pip install virtualenvwrapper-win
环境变量 :
新建文件夹D:/pyVirtualProject
变量名WORKON_HOME
变量值D:/pyVirtualProject
命令 :
创建:mkvirtualenv 虚拟环境名称
删除:rmvirtualenv 虚拟环境名称
进入:workon 虚拟环境名称
退出:deactivate
列表:lsvirtualenv