I am learning Python using Anaconda. Earlier I had only Anaconda Prompt. But after recent update of Anaconda through
conda update conda I came to see Anaconda Powershell Prompt. Few commands I tried in new Powershell Prompt which I used to do earlier in Anaconda Prompt. These commands worked fine.
Now, my question is what is the reason behind giving 2 command prompts by Anaconda? Is there any difference between their functionalities or capabilities?
My OS is Windows 7 and Conda version is 4.6.12.
23 Answers
First, for everything from executing python related commands (python, ipython, jupyter, conda, etc.) to running Python scripts (e.g. python helloworld.py), there is no difference. So there is no worry ;)
And then, the only difference, as the name suggests, is the windows shell environment in which you running conda commands: cmd.exe (Command Prompt) vs powershell.exe.
Now let's talk a bit more about the difference: (reference)
Briefly, the
cmd.exeis a simple shell introduced with Windows NT with the same basic syntax and functionality as DOS. It has relatively limited capabilities, especially when compared to Unix/Linux shells.And PowerShell is a modern shell implementation with all sorts of extra goodies (e.g. commands colorful highlight).
So, in Anaconda Powershell Prompt, you can run some powershell commands like these:
> $PSVersionTable Name Value ---- ----- PSVersion 5.1.18362.752 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.18362.752 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 > $env:PATH C:\Users\user-name\anaconda3;C:\Users\user-name\anaconda3\Library\mingw-w64\bin;... But in Anaconda Prompt, above commands would not be recognized, you can run this though:
>ver Microsoft Windows [版本 10.0.18363.815] And under the hood, Anaconda Powershell Prompt and Anaconda Prompt just two shortcuts invoking different commands:
%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& '%USERPROFILE%\anaconda3\shell\condabin\conda-hook.ps1' ; conda activate '%USERPROFILE%\anaconda3' " %windir%\System32\cmd.exe "/K" %USERPROFILE%\anaconda3\Scripts\activate.bat %USERPROFILE%\anaconda3 2Windows offers two command line environments, the traditional "Prompt" (cmd.exe) and the newer "PowerShell". You can use Anaconda with either of these.
The documentation for Windows commands covers both.
3In order to understand the difference between Anaconda Prompt and Anaconda Powershell Prompt, you need to understand the difference between Windows Command Prompt and Windows Powershell Prompt.
Powershell comes with a command-line shell a scripting language by Microsoft. You can use the scripting language to run commands like any other programming language as shown below,
PS C:\Users\coding_horse> $first="coding" PS C:\Users\coding_horse> $second="horse" PS C:\Users\coding_horse> $first+"-"+$second coding-horse Powershell also comes with additional benefits like Aliases which are very useful for people who come from a different platform. For example, on Windows Command Prompt you use cls to clear the contents, while on Linux you use clear. This forces you to learn terminal commands from scratch when you move from Linux to Windows or vise versa. Powershell Aliases solves this problem by creating aliases. Both cls and clear are aliases of Clear-Host and typing any of these three commands will clear the contents of the Powershell terminal. Similarly using dir, ls or Get-ChildItem will list the contents of the current folder. So, Windows Powershell allows you to use all of the Windows Command Prompt commands and gives you additional functionalities.
Anaconda Prompt is built on top of Windows Command Prompt and Anaconda Powershell Prompt is built on top of Windows Powershell Prompt. So, Anaconda Prompt supports all the commands of Windows Command Prompt and gives you additonal commands specific to anaconda like conda -V or conda list and so on. And Anaconda Powershell Prompt supports all of the Windows Powershell Prompt commands and additonal anaconda commands.
So, the take away is that if you use Anaconda Powershell Prompt you get all the functionalities of Windows Command Prompt, Windows Powershell Prompt and Anaconda Prompt.
