22

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.

YaOzI
  • 16,128
  • 9
  • 76
  • 72
RLD
  • 1,867
  • 3
  • 15
  • 20
  • this seems like a question that should be asked at the anaconda site - perhaps their forums? – Lee_Dailey Jun 18 '19 at 20:33
  • 2
    I'm not an Anaconda employee, so this is only speculation, but Microsoft is trying to get rid of the legacy prompt (which the original Anaconda Prompt is based on) in favor of Powershell. If I recall correctly, the default terminal in Windows 10 is Powershell unless you specifically request otherwise. Hence, Anaconda need to switch. – darthbith Jun 19 '19 at 00:42

2 Answers2

12

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.exe is 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

enter image description here

Community
  • 1
  • 1
YaOzI
  • 16,128
  • 9
  • 76
  • 72
  • should new packages for conda be installed with PowerShell Prompt or just Prompt? – develarist Sep 12 '20 at 00:33
  • @develarist Actually, it doesn't matter. These two are just different ways you run python/conda from command line. No matter which one you like to pick, all packages you installed would go to the same location, as long as you are in the same virtual environment. – YaOzI Sep 15 '20 at 06:06
2

Windows 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.

Roland Weber
  • 3,395
  • 12
  • 26