Installing Mambaforge or Anaconda on Windows

This guide will look at the installation of Mambaforge or Anaconda on Windows.

For Linux/Mac see:

System Requirements

The PC should match or exceed the following system requirements:

  • Modern Windows Version e.g. Windows 11 22H2 or Windows 10 22H2
  • 6th Generation Intel i5 Processor or Later
  • 8 GB RAM or Superior
  • 250 GB SSD or Superior
  • Chromium or Google Chrome Browser

The performance for Python will be poor if these system requirements are not satisfied.

Uninstalling and Purging Old Python Installations

Previous versions of Python Distributions should be uninstalled. For more details see:

Skip uninstallation if already on a clean install of Windows.

Mambaforge vs Anaconda

For development it is better to install a Python Distribution. There are two choices:

  • Mambaforge
  • Anaconda

Mambaforge has a basic base Python environment, installs packages using the community channel conda-forge by default and uses the mamba package manager which is an improved version of the conda package manager.

Anaconda has a busy base Python environment with a multitude of packages preinstalled such as numpy, pandas, matplotlib, seaborn, spyder and jupyterlab. The packages are from the Anaconda Inc channel conda and uses the conda package manager by default. The packages in the conda channel are not as up to date as those in the conda-forge channel as Anaconda Inc take additional time to test packages with their busy Python base environment. Moreover the number of packages in the conda channel are a subset of those in the conda-forge channel as Anaconda Inc only preinstall the most commonly used packages. Becausethere are so many packages in the base environment, there are often installation conflicts when attempting to install new packages. It is not recommended to update the Anaconda base environment until a standalone installer is released by Anaconda. To install new packages, a Python environment needs to be created.

Installation

The Installers are available from their perspective websites:

Both installers are similar. Double click to launch the installer:

img_001

Select Next:

img_002

Select Next:

img_003

Select Just Me (recommended):

img_004

In the next screen you will be asked where you want to install Mambaforge or Anaconda. It is recommended to install the programs in their default directory.

For Mambaforge:

%USERPROFILE%\mambaforge

For Anaconda:

%USERPROFILE%\anaconda3
img_005

Mambaforge in my case maps to

C:\Users\Philip\mambaforge

Anaconda would be installed in:

C:\Users\Philip\anaconda3

In the next screen, select the default options to register Mambaforge or Anaconda as my default Python and create start menu shortcuts.

img_007

Mambaforge can optionally be added to the Windows Environment Variable Path. This makes the base Python environment accessible via the Windows Terminal which allows third party applications to accessing Python from the Windows Terminal. This is not recommended by default. Such a use case is normally more advanced, for example a C++ IDE that is configured by default to access the Windows Terminal will also be able to invoke a Python Script if Mambaforge is added to the Windows Environmental Variables Path. For more details see:

Note that in most regular use scenarios the Mambaforge Prompt or Anaconda Powershell Prompt should be preferentially used to interact with Python instead of the Windows Terminal. These are similar to the Windows Terminal but are optimised to work with multiple Python environments and not hard coded to the single base environment provided in the Windows Environmental Variables Path as in the case of the Windows Terminal.

img_008

Once the decision to add Mambaforge to the Windows Environmental Path or not is configured. Select Install:

img_009

Select Next and Finish:

img_010
img_011

Launching the Mambaforge or Anaconda Powershell Prompt

Launch the Mambaforge Prompt or Anaconda Powershell Prompt from the Start Menu:

img_017

Unfortunately when initially installed, the Mambaforge Prompt may display as Miniforge Prompt which is a bug which will be addressed when the installation is updated.

The Prompt looks like the following.

(base) %USERPROFILE%>

The prompt is prefixed by (base) indicating that the base Python environment is selected.

The file path is shown which defaults to the User Profile which can be accessed in Windows Explorer by inputting:

%USERPROFILE%

into the address bar and in my case is C:\Users\Philip

A command can be input after the prompt >

When copying any line of code from this guide into your Mambaforge Prompt or Anaconda Powershell prompt do not include the prompt. i.e. copy to the right hand side of the > sign.

The Python in the base environment can be accessed from the Linux Terminal using:

(base) %USERPROFILE%> python

Details about the Python version will be shown:

(base) %USERPROFILE%> python
Python 3.10.10 | packaged by conda-forge | (main, Mar 24 2023, 20:00:38) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

The Python Prompt will display and looks like the following.

>>>

For clarity, the syntax highlighting scheme in this guide will use dark for Powershell and light for Python making the changes more obvious. Python code can be input:

>>> var = 'Hello World!'
>>> print(var)
Hello World!
>>>

To exit, the Python prompt, the Python exit function can be used:

>>> exit()

This will return to the Powershell Prompt:

(base) %USERPROFILE%> 

To exit powershell, the exit command can be used:

(base) %USERPROFILE%> exit

Notice the slight difference in syntax between the exit command (Powershell) and exit function (Python) because two different programming languages are used.

Exploring the Python base Environment

Navigate to:

%USERPROFILE%/mambaforge
%USERPROFILE%/anaconda3

Notice that this folder contains a python.exe which was ran earlier.

The Lib folder contains a large number of Python modules, script files ending in .py.

%USERPROFILE%/mambaforge/Lib
%USERPROFILE%/anaconda3/Lib

If Python is launched:

(base) %USERPROFILE%> python

Details about the Python distribution will be displayed:

(base) %USERPROFILE%> python
Python 3.10.10 | packaged by conda-forge | (main, Mar 24 2023, 20:00:38) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

And a Python Prompt will display:

>>> 

There is a datetime.py and this is imported in Python with the following:

>>> import datetime

There are also some subfolders such as collections. In the subfolders are a number of Python modules. The Python script file called __init__.py and this is the file imported in Python using the name of the folder:

>>> import collections

The modules in this folder or in the subfolders are known as Python standard libraries and are included with Python 3.10 which is preinstalled by Mambaforge and Anaconda.

There is also the site-packages subfolder which is where the third-party Python packages are installed which includes the popular data science libraries:

%USERPROFILE%\mambaforge\Lib\site-packages
%USERPROFILE%\anaconda3\Lib\site-packages

In both cases there is a conda folder which contains the conda package manager and another folder which contains its version.

Mambaforge will also contain a mamba folder and has 70 items as shown.

The Anaconda distribution will contain a very large number of folders. The most commonly used are numpy, pandas, matplotlib and seaborn and these folders will be listed alongside their versions.

The numpy folder has a __init__.py file and this file is imported when the following is input:

>>> import numpy as np

The matplotlib folder has a __init__.py file and pyplot.py file. This pyplot module of this library is imported when the following is input:

>>> import matplotlib.pyplot as plt

If these two commands are attempted in Mambaforge because these libraries aren't found in the Python (base) environment the following will display:

>>> import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'

Anaconda Navigator

Mambaforge does not have the Anaconda Navigator. The (base) Mambaforge environment is minimal and does not include the Spyder or JupyterLab IDEs.

The Anaconda Navigator can be launched using:

(base) %USERPROFILE%> anaconda-navigator

This gives a user interface for launching IDEs such as Spyder and JupyterLab.

The Spyder IDE can be launched from its Start Menu Shortcut or from the tile in the Anaconda navigator. It can be launched from the Anaconda Powershell Prompt directly using:

(base) %USERPROFILE%> spyder

Ignore prompts to update Spyder as a dependency for the latest version of Spyder is not yet satisfied in the conda channel.

In general, it is not recommended to change anything in the Anaconda base Python environment and instead wait until Anaconda release an updated installer. The Python environment is very busy and attempting to install or update a package results in other packages being removed due to their dependencies not being satisfied, this usually results in an unstable base Python environment.

The Anaconda Navigator supports a limited number of package upgrades for example the upgrade from Spyder 5.4.1 to 5.4.3:

Although it reports a successful install:

Spyder launches with a dependency error:

To the left, environments can be selected and the base Python environment can be selected:

Installing this package modifies 25 packages and removes 175 packages, reducing the functionality of the base Python environment:

The JupyterLab IDE can be launched from its tile or directly using:

(base) %USERPROFILE%> jupyter lab

Note the space between jupyter and lab, this is the only time a space is used for jupyterlab.

If ran from the Anaconda Powershell Prompt, the following will be displayed. Essentially the Anaconda Powershell Prompt runs a JupyterLab server which displays in the browser.

[I 2023-05-06 11:05:15.119 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 2023-05-06 11:05:15.172 ServerApp]

    To access the server, open this file in a browser:
        file:///C:/Users/Phili/AppData/Roaming/jupyter/runtime/jpserver-22284-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/lab?token=721fb2f4f374f47c2b4e4f4381150f88850bb1a95c81d241
     or http://127.0.0.1:8888/lab?token=721fb2f4f374f47c2b4e4f4381150f88850bb1a95c81d241
[W 2023-05-06 11:05:19.162 LabApp] Could not determine jupyterlab build status without nodejs

The server is instructed to run using an infinite loop. After JupyterLab is closed in the browser, the infinite loop can be exited by pressing Ctrl + c and the Anaconda Powershell Prompt will display Interrupted alongside a new Prompt:

[I 2023-05-06 11:09:35.173 ServerApp] Interrupted...
(base) PS %USERPROFILE%>

Updating the base Python Environment

To update the (base) Python environment in Mambaforge use:

(base) %USERPROFILE%> mamba update -all

The terminal will display:

Looking for: ['brotlipy', 'bzip2', 'ca-certificates', 'certifi', 'cffi', 'charset-normalizer', 'colorama', 'conda', 'conda-package-handling', 'conda-package-streaming', 'cryptography', 'fmt', 'idna', 'krb5', 'libarchive', 'libcurl', 'libffi', 'libiconv', 'libmamba', 'libmambapy', 'libsolv', 'libsqlite', 'libssh2', 'libxml2', 'libzlib', 'lz4-c', 'lzo', 'mamba', 'menuinst', 'miniforge_console_shortcut', 'openssl', 'pip', 'pluggy', 'pybind11-abi', 'pycosat', 'pycparser', 'pyopenssl', 'pysocks', 'python', 'python_abi', 'reproc', 'reproc-cpp', 'requests', 'ruamel.yaml', 'ruamel.yaml.clib', 'setuptools', 'tk', 'toolz', 'tqdm', 'tzdata', 'ucrt', 'urllib3', 'vc', 'vs2015_runtime', 'wheel', 'win_inet_pton', 'xz', 'yaml-cpp', 'zstandard', 'zstd']


conda-forge/win-64                                  20.2MB @   3.8MB/s  7.3s
conda-forge/noarch                                  12.2MB @   1.6MB/s  8.6s

Pinned packages:
  - python 3.10.*


Transaction

  Prefix: %USERPROFILE%\mambaforge

The transaction gives the location of the Mambaforge environment. You can open this location in file explorer and view the changes:

%USERPROFILE%\mambaforge\Lib\site-packages
%USERPROFILE%\anaconda3\Lib\site-packages

Then details about each package being Installed, Changed and Upgraded will be listed. Input y and then press ↵

  Package                           Version  Build            Channel                 Size
--------------------------------------------------------------------------------------------
  Install:
--------------------------------------------------------------------------------------------

  + boltons                          23.0.0  pyhd8ed1ab_0     conda-forge/noarch     303kB
  + jsonpatch                          1.32  pyhd8ed1ab_0     conda-forge/noarch      15kB
  + jsonpointer                         2.0  py_0             conda-forge/noarch       9kB
  + packaging                          23.1  pyhd8ed1ab_0     conda-forge/noarch      46kB
  + vc14_runtime                14.34.31931  h5081d32_16      conda-forge/win-64     726kB

  Change:
--------------------------------------------------------------------------------------------

  - libsqlite                        3.40.0  hcfcfb64_0       conda-forge
  + libsqlite                        3.40.0  hcfcfb64_1       conda-forge/win-64     825kB
  - openssl                           3.1.0  hcfcfb64_0       conda-forge
  + openssl                           3.1.0  hcfcfb64_3       conda-forge/win-64       7MB
  - vs2015_runtime              14.34.31931  h4c5c07a_10      conda-forge
  + vs2015_runtime              14.34.31931  hed1258a_16      conda-forge/win-64      17kB

  Upgrade:
--------------------------------------------------------------------------------------------

  - conda                            23.1.0  py310h5588dad_0  conda-forge
  + conda                            23.3.1  py310h5588dad_0  conda-forge/win-64     970kB
  - cryptography                     40.0.1  py310h6e82f81_0  conda-forge
  + cryptography                     40.0.2  py310h6e82f81_0  conda-forge/win-64       1MB
  - libcurl                          7.88.1  h68f0423_1       conda-forge
  + libcurl                           8.0.1  h68f0423_0       conda-forge/win-64     312kB
  - libmamba                          1.4.1  h8a7d157_0       conda-forge
  + libmamba                          1.4.2  h8a7d157_0       conda-forge/win-64       3MB
  - libmambapy                        1.4.1  py310h3fe4c2e_0  conda-forge
  + libmambapy                        1.4.2  py310h3fe4c2e_0  conda-forge/win-64     497kB
  - libxml2                          2.10.3  hc3477c8_6       conda-forge
  + libxml2                          2.10.4  hc3477c8_0       conda-forge/win-64       2MB
  - mamba                             1.4.1  py310hd9d798f_0  conda-forge
  + mamba                             1.4.2  py310hd9d798f_0  conda-forge/win-64      67kB
  - miniforge_console_shortcut          1.0  h57928b3_0       conda-forge
  + miniforge_console_shortcut          2.0  h57928b3_1       conda-forge/win-64      16kB
  - pip                              23.0.1  pyhd8ed1ab_0     conda-forge
  + pip                              23.1.2  pyhd8ed1ab_0     conda-forge/noarch       1MB
  - requests                         2.28.2  pyhd8ed1ab_1     conda-forge
  + requests                         2.29.0  pyhd8ed1ab_0     conda-forge/noarch      57kB
  - ruamel.yaml                     0.17.21  py310h8d17308_3  conda-forge
  + ruamel.yaml                     0.17.22  py310h8d17308_0  conda-forge/win-64     193kB
  - setuptools                       65.6.3  pyhd8ed1ab_0     conda-forge
  + setuptools                       67.7.2  pyhd8ed1ab_0     conda-forge/noarch     583kB

  Summary:

  Install: 5 packages
  Change: 3 packages
  Upgrade: 12 packages

  Total download: 20MB

--------------------------------------------------------------------------------------------


Confirm changes: [Y/n] y

The packages will then download and install, when finished a new prompt will display:

Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

(base) %USERPROFILE%>

The changes will also be reflected in file explorer.

Do not update the base environment in Anaconda as it will likely result in an instability, notice that an attempted update removes most of the installed packages in the base environment. Instead wait for the next updated standalone installer.

(base) PS C:\Users\Phili> conda update --all -c conda
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: C:\Users\Phili\anaconda3


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    beautifulsoup4-4.12.2      |  py310haa95532_0         212 KB
    conda-package-handling-2.0.2|             py_0         246 KB  conda
    conda-package-streaming-0.7.0|             py_0          17 KB  conda
    jupyter_core-5.3.0         |  py310haa95532_0         108 KB
    krb5-1.19.4                |       h5b6d351_0         786 KB
    libarchive-3.6.2           |       h2033e3e_1         1.8 MB
    libclang-14.0.6            |default_hb5a9fac_1         154 KB
    libclang13-14.0.6          |default_h8e68704_1        22.5 MB
    libxml2-2.10.3             |       h0ad7f3c_0         2.9 MB
    libxslt-1.1.37             |       h2bbff1b_0         448 KB
    packaging-23.0             |  py310haa95532_0          70 KB
    pip-23.0.1                 |  py310haa95532_0         2.8 MB
    python-3.10.11             |       h966fe2a_2        15.8 MB
    qt-main-5.15.2             |       he8e5bd7_8        59.4 MB
    qtwebkit-5.212             |       h2bbfb41_5        11.6 MB
    requests-2.29.0            |  py310haa95532_0          98 KB
    setuptools-66.0.0          |  py310haa95532_0         1.2 MB
    soupsieve-2.4              |  py310haa95532_0          70 KB
    sqlite-3.41.2              |       h2bbff1b_0         894 KB
    tornado-6.2                |  py310h2bbff1b_0         619 KB
    tqdm-4.65.0                |  py310h9909e9c_0         149 KB
    tzdata-2023c               |       h04d1e81_0         116 KB
    urllib3-1.26.15            |  py310haa95532_0         195 KB
    xz-5.4.2                   |       h8cc25b3_0         592 KB
    zstd-1.5.5                 |       hd43e919_0         682 KB
    ------------------------------------------------------------
                                           Total:       123.2 MB

The following NEW packages will be INSTALLED:

  krb5               pkgs/main/win-64::krb5-1.19.4-h5b6d351_0
  libclang13         pkgs/main/win-64::libclang13-14.0.6-default_h8e68704_1

The following packages will be REMOVED:

  alabaster-0.7.12-pyhd3eb1b0_0
  anyio-3.5.0-py310haa95532_0
  appdirs-1.4.4-pyhd3eb1b0_0
  argon2-cffi-21.3.0-pyhd3eb1b0_0
  argon2-cffi-bindings-21.2.0-py310h2bbff1b_0
  arrow-1.2.3-py310haa95532_1
  astroid-2.14.2-py310haa95532_0
  astropy-5.1-py310h9128911_0
  asttokens-2.0.5-pyhd3eb1b0_0
  atomicwrites-1.4.0-py_0
  automat-20.2.0-py_0
  autopep8-1.6.0-pyhd3eb1b0_1
  babel-2.11.0-py310haa95532_0
  backcall-0.2.0-pyhd3eb1b0_0
  bcrypt-3.2.0-py310h2bbff1b_1
  binaryornot-0.4.4-pyhd3eb1b0_1
  black-22.6.0-py310haa95532_0
  blas-1.0-mkl
  bleach-4.1.0-pyhd3eb1b0_0
  blosc-1.21.3-h6c2663c_0
  bokeh-2.4.3-py310haa95532_0
  bottleneck-1.3.5-py310h9128911_0
  brotli-1.0.9-h2bbff1b_7
  brotli-bin-1.0.9-h2bbff1b_7
  cfitsio-3.470-h2bbff1b_7
  charls-2.2.0-h6c2663c_0
  cloudpickle-2.0.0-pyhd3eb1b0_0
  colorcet-3.0.1-py310haa95532_0
  comm-0.1.2-py310haa95532_0
  constantly-15.1.0-py310haa95532_0
  contourpy-1.0.5-py310h59b6b97_0
  cookiecutter-1.7.3-pyhd3eb1b0_0
  cssselect-1.1.0-pyhd3eb1b0_0
  curl-7.87.0-h2bbff1b_0
  cycler-0.11.0-pyhd3eb1b0_0
  cytoolz-0.12.0-py310h2bbff1b_0
  daal4py-2023.0.2-py310hf497b98_0
  dal-2023.0.1-h59b6b97_26646
  dask-2022.7.0-py310haa95532_0
  dask-core-2022.7.0-py310haa95532_0
  datashader-0.14.4-py310haa95532_0
  datashape-0.5.4-py310haa95532_1
  debugpy-1.5.1-py310hd77b12b_0
  decorator-5.1.1-pyhd3eb1b0_0
  diff-match-patch-20200713-pyhd3eb1b0_0
  dill-0.3.6-py310haa95532_0
  distributed-2022.7.0-py310haa95532_0
  docstring-to-markdown-0.11-py310haa95532_0
  docutils-0.18.1-py310haa95532_3
  entrypoints-0.4-py310haa95532_0
  et_xmlfile-1.1.0-py310haa95532_0
  executing-0.8.3-pyhd3eb1b0_0
  flake8-6.0.0-py310haa95532_0
  flask-2.2.2-py310haa95532_0
  flit-core-3.6.0-pyhd3eb1b0_0
  fonttools-4.25.0-pyhd3eb1b0_0
  fsspec-2022.11.0-py310haa95532_0
  gensim-4.3.0-py310h4ed8f06_0
  greenlet-2.0.1-py310hd77b12b_0
  h5py-3.7.0-py310hfc34f40_0
  hdf5-1.10.6-h1756f20_1
  heapdict-1.0.1-pyhd3eb1b0_0
  holoviews-1.15.4-py310haa95532_0
  huggingface_hub-0.10.1-py310haa95532_0
  hvplot-0.8.2-py310haa95532_0
  hyperlink-21.0.0-pyhd3eb1b0_0
  icc_rt-2022.1.0-h6049295_2
  imagecodecs-2021.8.26-py310h4c966c4_2
  imageio-2.26.0-py310haa95532_0
  imagesize-1.4.1-py310haa95532_0
  imbalanced-learn-0.10.1-py310haa95532_0
  importlib-metadata-4.11.3-py310haa95532_0
  importlib_metadata-4.11.3-hd3eb1b0_0
  incremental-21.3.0-pyhd3eb1b0_0
  inflection-0.5.1-py310haa95532_0
  iniconfig-1.1.1-pyhd3eb1b0_0
  intake-0.6.7-py310haa95532_0
  intel-openmp-2021.4.0-haa95532_3556
  intervaltree-3.1.0-pyhd3eb1b0_0
  ipykernel-6.19.2-py310h9909e9c_0
  ipython-8.10.0-py310haa95532_0
  ipython_genutils-0.2.0-pyhd3eb1b0_1
  ipywidgets-7.6.5-pyhd3eb1b0_1
  isort-5.9.3-pyhd3eb1b0_0
  itemadapter-0.3.0-pyhd3eb1b0_0
  itemloaders-1.0.4-pyhd3eb1b0_1
  itsdangerous-2.0.1-pyhd3eb1b0_0
  jedi-0.18.1-py310haa95532_1
  jellyfish-0.9.0-py310h2bbff1b_0
  jinja2-time-0.2.0-pyhd3eb1b0_3
  jmespath-0.10.0-pyhd3eb1b0_0
  joblib-1.1.1-py310haa95532_0
  jq-1.6-haa95532_1
  json5-0.9.6-pyhd3eb1b0_0
  jupyter-1.0.0-py310haa95532_8
  jupyter_client-7.3.4-py310haa95532_0
  jupyter_console-6.6.2-py310haa95532_0
  jupyter_server-1.23.4-py310haa95532_0
  jupyterlab-3.5.3-py310haa95532_0
  jupyterlab_pygments-0.1.2-py_0
  jupyterlab_server-2.19.0-py310haa95532_0
  jupyterlab_widgets-1.0.0-pyhd3eb1b0_1
  jxrlib-1.1-he774522_2
  keyring-23.4.0-py310haa95532_0
  kiwisolver-1.4.4-py310hd77b12b_0
  lazy-object-proxy-1.6.0-py310h2bbff1b_0
  lcms2-2.12-h83e58a3_0
  libaec-1.0.4-h33f27b4_1
  libbrotlicommon-1.0.9-h2bbff1b_7
  libbrotlidec-1.0.9-h2bbff1b_7
  libbrotlienc-1.0.9-h2bbff1b_7
  libcurl-7.87.0-h86230a5_0
  libsodium-1.0.18-h62dcd97_0
  libspatialindex-1.9.3-h6c2663c_0
  libssh2-1.10.0-hcd4344a_0
  libuv-1.44.2-h2bbff1b_0
  libzopfli-1.0.3-ha925a31_0
  llvmlite-0.39.1-py310h23ce68f_0
  locket-1.0.0-py310haa95532_0
  lxml-4.9.1-py310h1985fb9_0
  lz4-3.1.3-py310h2bbff1b_0
  lzo-2.10-he774522_2
  m2w64-libwinpthread-git-5.0.0.4634.697f757-2
  markdown-3.4.1-py310haa95532_0
  matplotlib-3.7.0-py310haa95532_0
  matplotlib-base-3.7.0-py310h4ed8f06_0
  matplotlib-inline-0.1.6-py310haa95532_0
  mccabe-0.7.0-pyhd3eb1b0_0
  mistune-0.8.4-py310h2bbff1b_1000
  mkl-2021.4.0-haa95532_640
  mkl-service-2.4.0-py310h2bbff1b_0
  mkl_fft-1.3.1-py310ha0764ea_0
  mkl_random-1.2.2-py310h4ed8f06_0
  mock-4.0.3-pyhd3eb1b0_0
  mpmath-1.2.1-py310haa95532_0
  msgpack-python-1.0.3-py310h59b6b97_0
  multipledispatch-0.6.0-py310haa95532_0
  munkres-1.1.4-py_0
  mypy_extensions-0.4.3-py310haa95532_1
  nbclassic-0.5.2-py310haa95532_0
  nbclient-0.5.13-py310haa95532_0
  nbconvert-6.5.4-py310haa95532_0
  nest-asyncio-1.5.6-py310haa95532_0
  networkx-2.8.4-py310haa95532_0
  ninja-1.10.2-haa95532_5
  ninja-base-1.10.2-h6d14046_5
  nltk-3.7-pyhd3eb1b0_0
  notebook-6.5.2-py310haa95532_0
  notebook-shim-0.2.2-py310haa95532_0
  numba-0.56.4-py310h4ed8f06_0
  numexpr-2.8.4-py310hd213c9f_0
  numpy-1.23.5-py310h60c9a35_0
  numpy-base-1.23.5-py310h04254f7_0
  numpydoc-1.5.0-py310haa95532_0
  openjpeg-2.4.0-h4fc8c34_0
  openpyxl-3.0.10-py310h2bbff1b_0
  pandas-1.5.3-py310h4ed8f06_0
  pandocfilters-1.5.0-pyhd3eb1b0_0
  panel-0.14.3-py310haa95532_0
  param-1.12.3-py310haa95532_0
  paramiko-2.8.1-pyhd3eb1b0_0
  parsel-1.6.0-py310haa95532_0
  parso-0.8.3-pyhd3eb1b0_0
  partd-1.2.0-pyhd3eb1b0_1
  pathspec-0.10.3-py310haa95532_0
  patsy-0.5.3-py310haa95532_0
  pep8-1.7.1-py310haa95532_1
  pexpect-4.8.0-pyhd3eb1b0_3
  pickleshare-0.7.5-pyhd3eb1b0_1003
  plotly-5.9.0-py310haa95532_0
  pooch-1.4.0-pyhd3eb1b0_0
  poyo-0.5.0-pyhd3eb1b0_0
  prometheus_client-0.14.1-py310haa95532_0
  prompt-toolkit-3.0.36-py310haa95532_0
  prompt_toolkit-3.0.36-hd3eb1b0_0
  protego-0.1.16-py_0
  ptyprocess-0.7.0-pyhd3eb1b0_2
  pure_eval-0.2.2-pyhd3eb1b0_0
  py-1.11.0-pyhd3eb1b0_0
  pyasn1-0.4.8-pyhd3eb1b0_0
  pyasn1-modules-0.2.8-py_0
  pycodestyle-2.10.0-py310haa95532_0
  pyct-0.5.0-py310haa95532_0
  pycurl-7.45.1-py310hcd4344a_0
  pydispatcher-2.0.5-py310haa95532_2
  pydocstyle-6.3.0-py310haa95532_0
  pyerfa-2.0.0-py310h2bbff1b_0
  pyflakes-3.0.1-py310haa95532_0
  pygments-2.11.2-pyhd3eb1b0_0
  pyhamcrest-2.0.2-pyhd3eb1b0_2
  pylint-2.16.2-py310haa95532_0
  pylint-venv-2.3.0-py310haa95532_0
  pyls-spyder-0.4.0-pyhd3eb1b0_0
  pynacl-1.5.0-py310h8cc25b3_0
  pyodbc-4.0.34-py310hd77b12b_0
  pyparsing-3.0.9-py310haa95532_0
  pyqtwebengine-5.15.7-py310hd77b12b_0
  pytables-3.7.0-py310h388bc9b_1
  pytest-7.1.2-py310haa95532_0
  python-lsp-black-1.2.1-py310haa95532_0
  python-lsp-jsonrpc-1.0.0-pyhd3eb1b0_0
  python-lsp-server-1.7.1-py310haa95532_0
  python-slugify-5.0.2-pyhd3eb1b0_0
  python-snappy-0.6.1-py310hd77b12b_0
  pytoolconfig-1.2.5-py310haa95532_1
  pytorch-1.12.1-cpu_py310h5e1f01c_1
  pyviz_comms-2.0.2-pyhd3eb1b0_0
  pywavelets-1.4.1-py310h2bbff1b_0
  pywin32-ctypes-0.2.0-py310haa95532_1000
  pywinpty-2.0.10-py310h5da7b33_0
  pyzmq-23.2.0-py310hd77b12b_0
  qdarkstyle-3.0.2-pyhd3eb1b0_0
  qstylizer-0.2.2-py310haa95532_0
  qtawesome-1.2.2-py310haa95532_0
  qtconsole-5.4.0-py310haa95532_0
  queuelib-1.5.0-py310haa95532_0
  regex-2022.7.9-py310h2bbff1b_0
  requests-file-1.5.1-pyhd3eb1b0_0
  rope-1.7.0-py310haa95532_0
  rtree-1.0.1-py310h2eaa2aa_0
  scikit-image-0.19.3-py310hd77b12b_1
  scikit-learn-1.2.1-py310hd77b12b_0
  scikit-learn-intelex-2023.0.2-py310haa95532_0
  scipy-1.10.0-py310hb9afe5d_1
  scrapy-2.8.0-py310haa95532_0
  seaborn-0.12.2-py310haa95532_0
  send2trash-1.8.0-pyhd3eb1b0_1
  service_identity-18.1.0-pyhd3eb1b0_1
  smart_open-5.2.1-py310haa95532_0
  snappy-1.1.9-h6c2663c_0
  sniffio-1.2.0-py310haa95532_1
  snowballstemmer-2.2.0-pyhd3eb1b0_0
  sortedcontainers-2.4.0-pyhd3eb1b0_0
  sphinx-5.0.2-py310haa95532_0
  sphinxcontrib-applehelp-1.0.2-pyhd3eb1b0_0
  sphinxcontrib-devhelp-1.0.2-pyhd3eb1b0_0
  sphinxcontrib-htmlhelp-2.0.0-pyhd3eb1b0_0
  sphinxcontrib-jsmath-1.0.1-pyhd3eb1b0_0
  sphinxcontrib-qthelp-1.0.3-pyhd3eb1b0_0
  sphinxcontrib-serializinghtml-1.1.5-pyhd3eb1b0_0
  spyder-5.4.1-py310haa95532_0
  spyder-kernels-2.4.1-py310haa95532_0
  sqlalchemy-1.4.39-py310h2bbff1b_0
  stack_data-0.2.0-pyhd3eb1b0_0
  statsmodels-0.13.5-py310h9128911_1
  sympy-1.11.1-py310haa95532_0
  tabulate-0.8.10-py310haa95532_0
  tbb-2021.7.0-h59b6b97_0
  tbb4py-2021.7.0-py310h59b6b97_0
  tblib-1.7.0-pyhd3eb1b0_0
  tenacity-8.0.1-py310haa95532_1
  terminado-0.17.1-py310haa95532_0
  text-unidecode-1.3-pyhd3eb1b0_0
  textdistance-4.2.1-pyhd3eb1b0_0
  threadpoolctl-2.2.0-pyh0d69192_0
  three-merge-0.1.1-pyhd3eb1b0_0
  tifffile-2021.7.2-pyhd3eb1b0_2
  tinycss2-1.2.1-py310haa95532_0
  tldextract-3.2.0-pyhd3eb1b0_0
  tokenizers-0.11.4-py310he5181cf_1
  tomlkit-0.11.1-py310haa95532_0
  transformers-4.24.0-py310haa95532_0
  twisted-22.2.0-py310h2bbff1b_1
  twisted-iocpsupport-1.0.2-py310h2bbff1b_0
  typing-extensions-4.4.0-py310haa95532_0
  typing_extensions-4.4.0-py310haa95532_0
  unidecode-1.2.0-pyhd3eb1b0_0
  w3lib-1.21.0-pyhd3eb1b0_0
  watchdog-2.1.6-py310haa95532_0
  wcwidth-0.2.5-pyhd3eb1b0_0
  webencodings-0.5.1-py310haa95532_1
  websocket-client-0.58.0-py310haa95532_4
  werkzeug-2.2.2-py310haa95532_0
  whatthepatch-1.0.2-py310haa95532_0
  widgetsnbextension-3.5.2-py310haa95532_0
  wincertstore-0.2-py310haa95532_2
  winpty-0.4.3-4
  wrapt-1.14.1-py310h2bbff1b_0
  xarray-2022.11.0-py310haa95532_0
  xlwings-0.29.1-py310haa95532_0
  yapf-0.31.0-pyhd3eb1b0_0
  zeromq-4.3.4-hd77b12b_0
  zfp-0.5.5-hd77b12b_6
  zict-2.1.0-py310haa95532_0
  zipp-3.11.0-py310haa95532_0
  zope-1.0-py310haa95532_1
  zope.interface-5.4.0-py310h2bbff1b_0

The following packages will be UPDATED:

  beautifulsoup4                     4.11.1-py310haa95532_0 --> 4.12.2-py310haa95532_0
  jupyter_core                        5.2.0-py310haa95532_0 --> 5.3.0-py310haa95532_0
  libarchive                               3.6.2-hebabd0d_0 --> 3.6.2-h2033e3e_1
  libclang                        12.0.0-default_h627e005_2 --> 14.0.6-default_hb5a9fac_1
  libxml2                                 2.9.14-h0ad7f3c_0 --> 2.10.3-h0ad7f3c_0
  libxslt                                 1.1.35-h2bbff1b_0 --> 1.1.37-h2bbff1b_0
  packaging                            22.0-py310haa95532_0 --> 23.0-py310haa95532_0
  pip                                22.3.1-py310haa95532_0 --> 23.0.1-py310haa95532_0
  python                                  3.10.9-h966fe2a_1 --> 3.10.11-h966fe2a_2
  qt-main                                 5.15.2-he8e5bd7_7 --> 5.15.2-he8e5bd7_8
  qtwebkit                                 5.212-h3ad3cdb_4 --> 5.212-h2bbfb41_5
  requests                           2.28.1-py310haa95532_0 --> 2.29.0-py310haa95532_0
  setuptools                         65.6.3-py310haa95532_0 --> 66.0.0-py310haa95532_0
  soupsieve                     2.3.2.post1-py310haa95532_0 --> 2.4-py310haa95532_0
  sqlite                                  3.40.1-h2bbff1b_0 --> 3.41.2-h2bbff1b_0
  tornado                               6.1-py310h2bbff1b_0 --> 6.2-py310h2bbff1b_0
  tqdm                               4.64.1-py310haa95532_0 --> 4.65.0-py310h9909e9c_0
  tzdata                                   2022g-h04d1e81_0 --> 2023c-h04d1e81_0
  urllib3                           1.26.14-py310haa95532_0 --> 1.26.15-py310haa95532_0
  xz                                      5.2.10-h8cc25b3_1 --> 5.4.2-h8cc25b3_0
  zstd                                     1.5.2-h19a0ad4_0 --> 1.5.5-hd43e919_0

The following packages will be SUPERSEDED by a higher-priority channel:

  conda-package-han~ pkgs/main/win-64::conda-package-handl~ --> conda/noarch::conda-package-handling-2.0.2-py_0
  conda-package-str~ pkgs/main/win-64::conda-package-strea~ --> conda/noarch::conda-package-streaming-0.7.0-py_0


Proceed ([y]/n)? n

Package Manager

Mambaforge has the package manager mamba which is based upon the conda package manager. Both are command line based and the syntax is similar as mamba is essentially a child package manager of conda.

In Mambaforge input:

(base) %USERPROFILE%> mamba

In Anconda input:

(base) %USERPROFILE%> mamba

This will display a summary of the package manager:

usage: mamba [-h] [-V] command ...

conda is a tool for managing and deploying applications, environments and packages.

Options:

positional arguments:
  command
    clean             Remove unused packages and caches.
    compare           Compare packages between conda environments.
    config            Modify configuration values in .condarc. This is modeled after the git config command. Writes to
                      the user .condarc file (%USERPROFILE%\.condarc) by default. Use the --show-sources flag to
                      display all identified configuration locations on your computer.
    create            Create a new conda environment from a list of specified packages.
    info              Display information about current conda install.
    init              Initialize conda for shell interaction.
    install           Installs a list of packages into a specified conda environment.
    list              List installed packages in a conda environment.
    package           Low-level conda package utility. (EXPERIMENTAL)
    remove (uninstall)
                      Remove a list of packages from a specified conda environment. Use `--all` flag to remove all
                      packages and the environment itself.
    rename            Renames an existing environment.
    run               Run an executable in a conda environment.
    search            Search for packages and display associated information.The input is a MatchSpec, a query
                      language for conda packages. See examples below.
    update (upgrade)  Updates conda packages to the latest compatible version.
    notices           Retrieves latest channel notifications.
    repoquery         Query repositories using mamba.

options:
  -h, --help          Show this help message and exit.
  -V, --version       Show the conda version number and exit.

conda commands available from other packages (legacy):
  env

(base) %USERPROFILE%>

The most import subcommands are:

  • list
  • search
  • create
  • activate
  • install
  • update
  • clean
  • remove
  • env

list

To list the packages installed in the currently selected Python environment in Mambaforge input:

(base) %USERPROFILE%> mamba list

In Anaconda input:

(base) %USERPROFILE%> conda list

The output will be shown:

# packages in environment at %USERPROFILE%\mambaforge:
#
# Name                    Version                   Build  Channel
boltons                   23.0.0             pyhd8ed1ab_0    conda-forge
brotlipy                  0.7.0           py310h8d17308_1005    conda-forge
bzip2                     1.0.8                h8ffe710_4    conda-forge
ca-certificates           2022.12.7            h5b45459_0    conda-forge
certifi                   2022.12.7          pyhd8ed1ab_0    conda-forge
cffi                      1.15.1          py310h628cb3f_3    conda-forge
charset-normalizer        3.1.0              pyhd8ed1ab_0    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
conda                     23.3.1          py310h5588dad_0    conda-forge
conda-package-handling    2.0.2              pyh38be061_0    conda-forge
conda-package-streaming   0.7.0              pyhd8ed1ab_1    conda-forge
cryptography              40.0.2          py310h6e82f81_0    conda-forge
fmt                       9.1.0                h181d51b_0    conda-forge
idna                      3.4                pyhd8ed1ab_0    conda-forge
jsonpatch                 1.32               pyhd8ed1ab_0    conda-forge
jsonpointer               2.0                        py_0    conda-forge
krb5                      1.20.1               heb0366b_0    conda-forge
libarchive                3.6.2                h27c7867_0    conda-forge
libcurl                   8.0.1                h68f0423_0    conda-forge
libffi                    3.4.2                h8ffe710_5    conda-forge
libiconv                  1.17                 h8ffe710_0    conda-forge
libmamba                  1.4.2                h8a7d157_0    conda-forge
libmambapy                1.4.2           py310h3fe4c2e_0    conda-forge
libsolv                   0.7.23               h12be248_0    conda-forge
libsqlite                 3.40.0               hcfcfb64_1    conda-forge
libssh2                   1.10.0               h9a1e1f7_3    conda-forge
libxml2                   2.10.4               hc3477c8_0    conda-forge
libzlib                   1.2.13               hcfcfb64_4    conda-forge
lz4-c                     1.9.4                hcfcfb64_0    conda-forge
lzo                       2.10              he774522_1000    conda-forge
mamba                     1.4.2           py310hd9d798f_0    conda-forge
menuinst                  1.4.19          py310h5588dad_1    conda-forge
miniforge_console_shortcut 2.0                  h57928b3_1    conda-forge
openssl                   3.1.0                hcfcfb64_3    conda-forge
packaging                 23.1               pyhd8ed1ab_0    conda-forge
pip                       23.1.2             pyhd8ed1ab_0    conda-forge
pluggy                    1.0.0              pyhd8ed1ab_5    conda-forge
pybind11-abi              4                    hd8ed1ab_3    conda-forge
pycosat                   0.6.4           py310h8d17308_1    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pyopenssl                 23.1.1             pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1              pyh0701188_6    conda-forge
python                    3.10.10         h4de0772_0_cpython    conda-forge
python_abi                3.10                    3_cp310    conda-forge
reproc                    14.2.4               hcfcfb64_0    conda-forge
reproc-cpp                14.2.4               h63175ca_0    conda-forge
requests                  2.29.0             pyhd8ed1ab_0    conda-forge
ruamel.yaml               0.17.22         py310h8d17308_0    conda-forge
ruamel.yaml.clib          0.2.7           py310h8d17308_1    conda-forge
setuptools                67.7.2             pyhd8ed1ab_0    conda-forge
tk                        8.6.12               h8ffe710_0    conda-forge
toolz                     0.12.0             pyhd8ed1ab_0    conda-forge
tqdm                      4.65.0             pyhd8ed1ab_1    conda-forge
tzdata                    2023c                h71feb2d_0    conda-forge
ucrt                      10.0.22621.0         h57928b3_0    conda-forge
urllib3                   1.26.15            pyhd8ed1ab_0    conda-forge
vc                        14.3                hb6edc58_10    conda-forge
vc14_runtime              14.34.31931         h5081d32_16    conda-forge
vs2015_runtime            14.34.31931         hed1258a_16    conda-forge
wheel                     0.40.0             pyhd8ed1ab_0    conda-forge
win_inet_pton             1.1.0              pyhd8ed1ab_6    conda-forge
xz                        5.2.6                h8d14728_0    conda-forge
yaml-cpp                  0.7.0                h63175ca_2    conda-forge
zstandard                 0.19.0          py310h0009e47_1    conda-forge
zstd                      1.5.2                h12be248_6    conda-forge

(base) %USERPROFILE%>

Python packages use the version number a.i.p where a is the major version, i is the minor version and p is the patch version.

To search for a package for example spyder. In Mambaforge use:

(base) %USERPROFILE%> mamba search spyder

In Anaconda input:

(base) %USERPROFILE%> conda search spyder

The output in Mambaforge will be:

Loading channels: done
# Name                       Version           Build  Channel  
spyder                         5.4.2 py310h5588dad_0  conda-forge
spyder                         5.4.2 py311h1ea47a8_0  conda-forge
spyder                         5.4.2  py38haa244fe_0  conda-forge
spyder                         5.4.2  py39hcbf5309_0  conda-forge
spyder                         5.4.3 py310h5588dad_0  conda-forge
spyder                         5.4.3 py311h1ea47a8_0  conda-forge
spyder                         5.4.3  py38haa244fe_0  conda-forge
spyder                         5.4.3  py39hcbf5309_0  conda-forge   
(base) %USERPROFILE%>

In Anaconda will be:

Loading channels: done
# Name                       Version           Build  Channel  
spyder                         5.4.2 py310h5588dad_0  conda-forge
spyder                         5.4.2 py311h1ea47a8_0  conda-forge
spyder                         5.4.2  py38haa244fe_0  conda-forge
spyder                         5.4.2  py39hcbf5309_0  conda-forge          
(base) %USERPROFILE%>

Notice the versions are ordered and the newest version is at the bottom. A package may also be available for different Python versions. For example the latest version of Spyder is listed for Python 3.8, 3.9, 3.10 and 3.11. Currently Python Version 3.10 is the default version of Anaconda and Mambaforge.

Notice the difference in channels; Mambaforge uses the community channel conda-forge by default and Anaconda use the Anaconda Inc channel conda by default. The latest version in the conda channel is often behind the latest version in the community channel conda-forge as Anaconda Inc take some additional time for testing.

It is possible to specify the channel in Anaconda using the channel parameter:

(base) %USERPROFILE%> conda search spyder -c conda-forge

This will give the same output as Mambaforge:

Loading channels: done
# Name                       Version           Build  Channel  
spyder                         5.4.2 py310h5588dad_0  conda-forge
spyder                         5.4.2 py311h1ea47a8_0  conda-forge
spyder                         5.4.2  py38haa244fe_0  conda-forge
spyder                         5.4.2  py39hcbf5309_0  conda-forge
spyder                         5.4.3 py310h5588dad_0  conda-forge
spyder                         5.4.3 py311h1ea47a8_0  conda-forge
spyder                         5.4.3  py38haa244fe_0  conda-forge
spyder                         5.4.3  py39hcbf5309_0  conda-forge      
(base) %USERPROFILE%>

create

A Python environment is a subinstallation of Python which you can use to install a different version of Python and an assortment of Python packages without touching your base Python environment (default). Python environments are stored in the envs subfolder:

%USERPROFILE%/mambaforge/envs
%USERPROFILE%/anaconda3/envs

A Python environment with the name spyder will be created for the latest version of the Spyder IDE.

In Mambaforge use:

(base) %USERPROFILE%> mamba create -n spyder

In Anaconda use:

(base) %USERPROFILE%> conda create -n spyder

The Python environment will be created:

Looking for: []

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

To activate this environment, use

     $ mamba activate spyder

To deactivate an active environment, use

     $ mamba deactivate

(base) %USERPROFILE%> 

The spyder subfolder will appear:

%USERPROFILE%/mambaforge/envs/spyder
%USERPROFILE%/anaconda3/envs/spyder

This folder will be empty until packages have been added to it.

activate

The prompt has the prefix base which means the base Python environment is selected and therefore any commands like list, install, remove, update will look at or make changes to the base Python environment:

(base) %USERPROFILE%> 

To switch Python environment. In Mambaforge use:

(base) %USERPROFILE%> mamba activate spyder

In Anaconda use:

(base) %USERPROFILE%> conda activate spyder

Notice that the (base) now changes to (spyder) indicating the spyder Python environment is selected:

(spyder) %USERPROFILE%>  

Notice that the (base) now changes to (spyder) indicating the spyder Python environment is selected. Now any commands like list, install, remove, update will look at or make changes to the base Python environment. For example if list is used:

(spyder) %USERPROFILE%> mamba list

An empty list displays because nothing has been added to the Python environment:

(spyder) %USERPROFILE%> mamba list
# packages in environment at %USERPROFILE%/mambaforge/envs/spyder:
#
# Name                    Version                   Build  Channel

The Python environment will be activated only for that terminal session. If the terminal is closed and relaunched, the (base) Python environment which is the default will be reselected. The spyder environment will need to be activated again to work with it.

install

In Mambaforge it is recommended to install new packages in a separate Python environment.

To install a package in Mambaforge use the syntax:

(spyder) %USERPROFILE%> mamba install spyder

Multiple packages can be installed simultaneously:

(spyder) %USERPROFILE%> mamba install python spyder

The version number of the package can be assigned, for example to create a Python environment with Python 3.11 instead of the default Python 3.10 use:

(spyder) %USERPROFILE%> mamba install python=3.11 spyder

In Anaconda it is mandatory to install new packages in a separate Python environment. Installation of packages, particularly a package corresponding to an IDE such as Spyder which has a large number of dependencies will conflict with the dependencies for other packages in the base Python environment, normally resulting in numerous changes and most packages being removed, leaving the base environment in an unusable state.

Generally additional Python environments are made using packages from the community channel conda-forge. Python environments using mixed channels conda and conda-forge are unstable.

To install a package in Anaconda from the community channel conda-forge use the syntax:

(spyder) %USERPROFILE%> conda install spyder -c conda-forge

Multiple packages can be installed simultaneously:

(spyder) %USERPROFILE%> conda install python spyder -c conda-forge

The version number of the package can be assigned:

(spyder) %USERPROFILE%> conda install python=3.11 spyder -c conda-forge

To install Spyder and all its dependencies for Python 3.11. For Mambaforge use:

(spyder) %USERPROFILE%> mamba install spyder python=3.11 cython seaborn scikit-learn sympy openpyxl xlrd xlsxwriter lxml sqlalchemy

For Anaconda use:

(spyder) %USERPROFILE%> conda install spyder python=3.11 cython seaborn scikit-learn sympy openpyxl xlrd xlsxwriter lxml sqlalchemy -c conda-forge

Because each of these libraries have a large number of dependencies the following will display. The full list of ~300 packages and their details will display. Input y to proceed:

Looking for: ['spyder', 'python=3.11', 'cython', 'seaborn', 'scikit-learn', 'sympy', 'openpyxl', 'xlrd', 'xlsxwriter', 'lxml', 'sqlalchemy']

conda-forge/win-64                                          Using cache
conda-forge/noarch                                          Using cache
Transaction

  Prefix: %USERPROFILE%\mambaforge\envs\spyder

  Updating specs:

   - spyder
   - python=3.11
   - cython
   - seaborn
   - scikit-learn
   - sympy
   - openpyxl
   - xlrd
   - xlsxwriter
   - lxml
   - sqlalchemy

  Package                                     Version  Build               Channel                  Size
----------------------------------------------------------------------------------------------------------
  Install:
----------------------------------------------------------------------------------------------------------

  + ipykernel                                  6.22.0  pyh025b116_0        conda-forge/noarch      112kB
  + ipython                                    8.13.2  pyh08f2357_0        conda-forge/noarch      584kB

  + matplotlib-base                             3.7.1  py311h6e989c2_0     conda-forge/win-64        8MB
  + matplotlib-inline                           0.1.6  pyhd8ed1ab_0        conda-forge/noarch       12kB

  + numpy                                      1.24.3  py311h0b4df5a_0     conda-forge/win-64        7MB

  + pandas                                      2.0.1  py311hf63dbb6_0     conda-forge/win-64       13MB

  + python                                     3.11.3  h2628c8c_0_cpython  conda-forge/win-64       18MB

  + qt-main                                    5.15.8  h7f2b912_9          conda-forge/win-64       59MB

  + scikit-learn                                1.2.2  py311h142b183_1     conda-forge/win-64        8MB
  + scipy                                      1.10.1  py311h37ff6ca_1     conda-forge/win-64       25MB
  + seaborn                                    0.12.2  hd8ed1ab_0          conda-forge/noarch        6kB
  + seaborn-base                               0.12.2  pyhd8ed1ab_0        conda-forge/noarch      232kB

  + spyder                                      5.4.3  py311h1ea47a8_0     conda-forge/win-64       12MB
  + spyder-kernels                              2.4.3  win_pyhd8ed1ab_0    conda-forge/noarch       80kB


  Summary:

  Install: 268 packages

  Total download: 637MB

----------------------------------------------------------------------------------------------------------


Confirm changes: [Y/n] y

When the packages have finished downloading and installing, the following will display:

Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

(spyder) %USERPROFILE%>

The Anaconda Navigator (which has to be launched from the base Python environment) can be used to select the spyder Python environment:

Exploring the spyder Python Environment

Now the following folder will be populated and contain a python.exe

%USERPROFILE%/envs/spyder
%USERPROFILE%/envs/spyder

In this folder will be Python 3.11 and the Python standard libraries. If the following is input:

(spyder) %USERPROFILE%> python

Details about the installed Python version will display:

(spyder) %USERPROFILE%> python
Python 3.11.3 | packaged by conda-forge | (main, Apr  6 2023, 08:50:54) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

The Python prompt will then display:

>>>

There will also be a Lib subfolder:

%USERPROFILE%/envs/spyder/Lib
%USERPROFILE%/envs/spyder/Lib

The standard library datetime.py can be imported using:

>>> import datetime

There is a subfolder called collections and in that folder there is an __init__.py file, this is the file that is imported when collections is imported using:

>>> import collections

The modules in this folder or in the subfolders are known as Python standard libraries and are included with Python 3.11 itself.

There is also the site-packages subfolder which is where the third-party Python packages are installed which includes the popular data science libraries:

%USERPROFILE%/envs/spyder/Lib/site-packages
%USERPROFILE%/envs/spyder/Lib/site-packages

The numpy folder has a __init__.py file and this file is imported when the following is input:

>>> import numpy as np

The matplotlib folder has an __init__.py file (used to import the full library) and pyplot.py file (used to import the pyplot module, more commonly used). The pyplot module of this library is imported when the following is input:

>>> import matplotlib.pyplot as plt

To exit the Python prompt type in:

>>> exit()

The Powershell prompt will return:

(spyder) %USERPROFILE%> 

To launch the Spyder IDE input:

(spyder) %USERPROFILE%> spyder

A QT warning may display which can be ignored:

(spyder) %USERPROFILE%> spyder
fromIccProfile: failed minimal tag size sanity

Spyder is a process that is running from the terminal and the terminal window will be unusable while Spyder is running. Another terminal window can be opened for another task. The Spyder IDE displays:

A Spyder shortcut will also be available in the Start Menu.

update

To update the Python environment. In Mambaforge use the command:

(spyder) %USERPROFILE%> mamba update --all

In Anaconda use the command:

(spyder) %USERPROFILE%> conda update --all -c conda-forge

Do not use this command with base Python environment in Anaconda.

If there are updates proposed changes will be displayed, these can be reviewed and accepted by inputting y.

  Package       Version  Build              Channel                 Size
--------------------------------------------------------------------------
  Install:
--------------------------------------------------------------------------

  + blis          0.9.0  h8d14728_0         conda-forge/win-64       6MB

  Change:
--------------------------------------------------------------------------

  - libblas       3.9.0  16_win64_mkl       conda-forge
  + libblas       3.9.0  16_win64_blis      conda-forge/win-64       3MB
  - libcblas      3.9.0  16_win64_mkl       conda-forge
  + libcblas      3.9.0  16_win64_blis      conda-forge/win-64       3MB
  - liblapack     3.9.0  16_win64_mkl       conda-forge
  + liblapack     3.9.0  5_hd5c7e75_netlib  conda-forge/win-64       3MB

  Upgrade:
--------------------------------------------------------------------------

  - mkl        2022.1.0  h6a75c08_874       conda-forge
  + mkl        2023.1.0  h6a75c08_48682     conda-forge/win-64     144MB

  Summary:

  Install: 1 packages
  Change: 3 packages
  Upgrade: 1 packages

  Total download: 158MB

--------------------------------------------------------------------------


Confirm changes: [Y/n] y

Otherwise if all packages are up to date, All requested packages already installed will display.

Looking for: ['alabaster', 'arrow', 'astroid', 'asttokens', 'atomicwrites', 'attrs', 'autopep8', 'babel', 'backcall', 'backports', 'backports.functools_lru_cache', 'bcrypt', 'beautifulsoup4', 'binaryornot', 'black', 'bleach', 'blis', 'brotli', 'brotli-bin', 'brotlipy', 'bzip2', 'ca-certificates', 'certifi', 'cffi', 'chardet', 'charset-normalizer', 'click', 'cloudpickle', 'colorama', 'comm', 'contourpy', 'cookiecutter', 'cryptography', 'cycler', 'cython', 'debugpy', 'decorator', 'defusedxml', 'diff-match-patch', 'dill', 'docstring-to-markdown', 'docutils', 'entrypoints', 'et_xmlfile', 'executing', 'flake8', 'fonttools', 'freetype', 'gettext', 'glib', 'glib-tools', 'greenlet', 'gst-plugins-base', 'gstreamer', 'icu', 'idna', 'imagesize', 'importlib-metadata', 'importlib_metadata', 'importlib_resources', 'inflection', 'intel-openmp', 'intervaltree', 'ipykernel', 'ipython', 'ipython_genutils', 'isort', 'jaraco.classes', 'jedi', 'jellyfish', 'jinja2', 'jinja2-time', 'joblib', 'jsonschema', 'jupyterlab_pygments', 'jupyter_client', 'jupyter_core', 'keyring', 'kiwisolver', 'krb5', 'lazy-object-proxy', 'lcms2', 'lerc', 'libblas', 'libbrotlicommon', 'libbrotlidec', 'libbrotlienc', 'libcblas', 'libclang', 'libclang13', 'libdeflate', 'libexpat', 'libffi', 'libglib', 'libhwloc', 'libiconv', 'libjpeg-turbo', 'liblapack', 'libogg', 'libpng', 'libsodium', 'libspatialindex', 'libsqlite', 'libtiff', 'libvorbis', 'libwebp', 'libwebp-base', 'libxcb', 'libxml2', 'libxslt', 'libzlib', 'lxml', 'm2w64-gcc-libgfortran', 'm2w64-gcc-libs', 'm2w64-gcc-libs-core', 'm2w64-gmp', 'm2w64-libwinpthread-git', 'markupsafe', 'matplotlib-base', 'matplotlib-inline', 'mccabe', 'mistune', 'mkl', 'more-itertools', 'mpmath', 'msys2-conda-epoch', 'munkres', 'mypy_extensions', 'nbclient', 'nbconvert', 'nbconvert-core', 'nbconvert-pandoc', 'nbformat', 'nest-asyncio', 'numpy', 'numpydoc', 'openjpeg', 'openpyxl', 'openssl', 'packaging', 'pandas', 'pandoc', 'pandocfilters', 'paramiko', 'parso', 'pathspec', 'patsy', 'pcre2', 'pexpect', 'pickleshare', 'pillow', 'pip', 'pkgutil-resolve-name', 'platformdirs', 'pluggy', 'ply', 'pooch', 'prompt-toolkit', 'prompt_toolkit', 'psutil', 'pthread-stubs', 'pthreads-win32', 'ptyprocess', 'pure_eval', 'pycodestyle', 'pycparser', 'pydocstyle', 'pyflakes', 'pygments', 'pylint', 'pylint-venv', 'pyls-spyder', 'pynacl', 'pyopenssl', 'pyparsing', 'pyqt', 'pyqt5-sip', 'pyqtwebengine', 'pyrsistent', 'pysocks', 'python', 'python-dateutil', 'python-fastjsonschema', 'python-lsp-black', 'python-lsp-jsonrpc', 'python-lsp-server', 'python-lsp-server-base', 'python-slugify', 'python-tzdata', 'python_abi', 'pytoolconfig', 'pytz', 'pywin32', 'pywin32-ctypes', 'pyyaml', 'pyzmq', 'qdarkstyle', 'qstylizer', 'qt-main', 'qt-webengine', 'qtawesome', 'qtconsole', 'qtconsole-base', 'qtpy', 'requests', 'rope', 'rtree', 'scikit-learn', 'scipy', 'seaborn', 'seaborn-base', 'setuptools', 'sip', 'six', 'snowballstemmer', 'sortedcontainers', 'soupsieve', 'sphinx', 'sphinxcontrib-applehelp', 'sphinxcontrib-devhelp', 'sphinxcontrib-htmlhelp', 'sphinxcontrib-jsmath', 'sphinxcontrib-qthelp', 'sphinxcontrib-serializinghtml', 'spyder', 'spyder-kernels', 'sqlalchemy', 'stack_data', 'statsmodels', 'sympy', 'tbb', 'text-unidecode', 'textdistance', 'threadpoolctl', 'three-merge', 'tinycss2', 'tk', 'toml', 'tomli', 'tomlkit', 'tornado', 'traitlets', 'typing-extensions', 'typing_extensions', 'tzdata', 'ucrt', 'ujson', 'unidecode', 'urllib3', 'vc', 'vc14_runtime', 'vs2015_runtime', 'watchdog', 'wcwidth', 'webencodings', 'whatthepatch', 'wheel', 'win_inet_pton', 'wrapt', 'xlrd', 'xlsxwriter', 'xorg-libxau', 'xorg-libxdmcp', 'xz', 'yaml', 'yapf', 'zeromq', 'zipp', 'zstd']

Pinned packages:
  - python 3.11.*


Transaction

  Prefix: %USERPROFILE%\mambaforge\envs\spyder

  All requested packages already installed


(spyder) %USERPROFILE%>

It is recommended to periodically check for updates for a Python environment.

clean

The conda and mamba package managers cache packages, meaning the packages are downloaded as tarball files. If a tarball file has already been downloaded for a previously created Python environment it will be reused instead of redownloading the tarball again making installation faster. The tarball files from previous versions of Python libraries do not get deleted by default, which makes it easy to revert back to a previous version without redownloading any files. When the Python environment is frequently updated, there will be a large number of older versions of tarball files. These can be removed in Mambaforge using the command:

(spyder) %USERPROFILE%> mamba clean -all

In Anaconda instead use the command:

(spyder) %USERPROFILE%> conda clean -all

The following output will display, input y at each question in order to proceed with the clean up:

Will remove 322 (820.6 MB) tarball(s).
Proceed ([y]/n)? y
Will remove 1 index cache(s).
Proceed ([y]/n)? y
Will remove 35 (841.8 MB) package(s).
Proceed ([y]/n)? y
There are no tempfile(s) to remove.
There are no logfile(s) to remove.
(spyder) %USERPROFILE%>

revision

The revisions for a Python environment can be listed in Mambaforge using:

(spyder) %USERPROFILE%> mamba list --revision

Or in Anaconda using:

(spyder) %USERPROFILE%> conda list --revision

The revisions will be listed. For each revision the packages added and the packages removed will be displayed:

(spyder) %USERPROFILE%>mamba list --revision
2023-05-06 08:17:29  (rev 0)

2023-05-06 08:40:47  (rev 1)

    +ipykernel-6.22.0 (conda-forge/noarch)
    +ipython-8.13.2 (conda-forge/noarch))

    +libblas-3.9.0 (conda-forge/win-64)

    +libcblas-3.9.0 (conda-forge/win-64)

    +matplotlib-base-3.7.1 (conda-forge/win-64)
    +matplotlib-inline-0.1.6 (conda-forge/noarch)

    +numpy-1.24.3 (conda-forge/win-64)

    +pandas-2.0.1 (conda-forge/win-64)

    +pyqt-5.15.7 (conda-forge/win-64)
    +pyqt5-sip-12.11.0 (conda-forge/win-64)

    +python-3.11.3 (conda-forge/win-64)

    +scikit-learn-1.2.2 (conda-forge/win-64)
    +scipy-1.10.1 (conda-forge/win-64)
    +seaborn-0.12.2 (conda-forge/noarch)
    +seaborn-base-0.12.2 (conda-forge/noarch)

    +spyder-5.4.3 (conda-forge/win-64)
    +spyder-kernels-2.4.3 (conda-forge/noarch)


2023-05-06 09:01:32  (rev 2)
     libblas  {3.9.0 (conda-forge/win-64) -> 3.9.0 (conda-forge/win-64)}
     libcblas  {3.9.0 (conda-forge/win-64) -> 3.9.0 (conda-forge/win-64)}
     liblapack  {3.9.0 (conda-forge/win-64) -> 3.9.0 (conda-forge/win-64)}
     mkl  {2022.1.0 (conda-forge/win-64) -> 2023.1.0 (conda-forge/win-64)}
    +blis-0.9.0 (conda-forge/win-64)

(spyder) %USERPROFILE%>

A revision can be restored in Mambaforge using:

(spyder) %USERPROFILE%> mamba install --revision 1

Or in Anaconda using:

(base) PS %USERPROFILE%> conda install --revision 0
(spyder) PS %USERPROFILE%> conda install --revision 1 -c conda-forge

In my case for Mambaforge, it doesn't seem to work properly and no changes are made.

Looking for: []

conda-forge/noarch                                  12.2MB @   2.5MB/s  6.0s
conda-forge/win-64                                  20.2MB @   3.0MB/s  8.8s

Pinned packages:
  - python 3.11.*


Transaction

  Prefix: %USERPROFILE%\mambaforge\envs\spyder

  All requested packages already installed


(spyder) %USERPROFILE%>

For Mambaforge it is more reliable to periodically export Python environment yxml files and import these to revert to a Python environment which is discussed below.

For Anaconda, reverting to a revision seems to be more reliable. The base Python environment where Spyder 5.4.1 was updated to Spyder 5.4.3 and didn't work due to dependencies not being satisfied displays:

(base) PS %USERPROFILE%> conda list --revision
2023-04-13 15:18:24  (rev 0)

    +spyder-5.4.1
    +spyder-kernels-2.4.1

2023-05-06 10:53:31  (rev 1)

     spyder  {5.4.1 -> 5.4.3 (defaults/win-64)}
     spyder-kernels  {2.4.1 -> 2.4.3 (defaults/win-64)}

And reverts back to revision 0:

(base) PS %USERPROFILE%> conda install --revision 0

## Package Plan ##

  environment location: C:\Users\Phili\anaconda3

  added / updated specs:
    - anaconda-client
    - anaconda-navigator
    - anaconda-project
    - conda
    - conda-build
    - conda-content-trust
    - conda-pack
    - conda-package-handling
    - conda-package-streaming
    - conda-token
    - conda-verify
    - console_shortcut
    - menuinst
    - pip
    - powershell_shortcut
    - python=3.10
    - setuptools
    - spyder==5.4.3
    - wheel


The following packages will be UPDATED:

  dask               pkgs/main/noarch::dask-2022.2.1-pyhd3~ --> pkgs/main/win-64::dask-2022.7.0-py310haa95532_0
  dask-core          pkgs/main/noarch::dask-core-2022.2.1-~ --> pkgs/main/win-64::dask-core-2022.7.0-py310haa95532_0
  distributed        pkgs/main/noarch::distributed-2022.2.~ --> pkgs/main/win-64::distributed-2022.7.0-py310haa95532_0

The following packages will be DOWNGRADED:

  ipython                            8.12.0-py310haa95532_0 --> 8.10.0-py310haa95532_0
  jupyter_client                      8.1.0-py310haa95532_0 --> 7.3.4-py310haa95532_0
  qtconsole                           5.4.2-py310haa95532_0 --> 5.4.0-py310haa95532_0
  spyder                              5.4.3-py310haa95532_0 --> 5.4.1-py310haa95532_0
  spyder-kernels                      2.4.3-py310haa95532_0 --> 2.4.1-py310haa95532_0
  tornado                               6.2-py310h2bbff1b_0 --> 6.1-py310h2bbff1b_0


Proceed ([y]/n)? y

This completes the operation as expected:

Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(base) PS %USERPROFILE%>

remove

A package can be removed (uninstalled) in Mambaforge using:

(spyder) %USERPROFILE%> mamba remove spyder

Or in Anaconda using:

(spyder) %USERPROFILE%> conda remove spyder

The following output will display. Note removing a package that other packages are dependent on will also remove those packages. Review the changes and input y in order to proceed:

Removing specs: ['spyder']
Transaction

  Prefix: %USERPROFILE%\mambaforge\envs\spyder

  Removing specs:

   - spyder


  Package   Version  Build            Channel         Size
------------------------------------------------------------
  Remove:
------------------------------------------------------------

  - spyder    5.4.3  py311h1ea47a8_0  conda-forge

  Summary:

  Remove: 1 packages

  Total download: 0 B

------------------------------------------------------------


Confirm changes: [Y/n] y

The package spyder is now removed:

Confirm changes: [Y/n] y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

(spyder) %USERPROFILE%>

Attempting to launch Spyder now will give an error:

(spyder) %USERPROFILE%> spyder
(spyder) %USERPROFILE%> spyder
'spyder' is not recognized as an internal or external command,
operable program or batch file.

env

The env command can be used to list and remove Python environments. To list the Python environments in Mambaforge use:

(spyder) %USERPROFILE%> mamba env list

To list the Python environments in Anaconda use:

(spyder) %USERPROFILE%> conda env list

The following will be output:

(spyder) %USERPROFILE%> mamba env list
# conda environments:
#
base                     %USERPROFILE%\mambaforge
spyder                *  %USERPROFILE%\mambaforge\envs\spyder

The * indicates the Python environment selected.

To remove a Python environment, it cannot be activated. Therefore to remove the spyder Python environment, base will first be activated. To remove the spyder Python environment in Mambaforge use:

(spyder) %USERPROFILE%> mamba activate base
(spyder) %USERPROFILE%> mamba env remove -n spyder

In Anaconda use:

(spyder) %USERPROFILE%> conda activate base
(base) %USERPROFILE%> conda env remove -n spyder

The following will display:

Remove all packages in environment %USERPROFILE%\mambaforge\envs\spyder:

(spyder) %USERPROFILE%> 

The spyder folder in:

%USERPROFILE%/mambaforge/envs
%USERPROFILE%/anaconda3/envs

will now be removed.

Python Environments for IDEs

The create and install commands can be combined, which will create a Python environment with packages installed in revision 0.

spyder – Mambaforge

A Python environment for Spyder can be created on Mambaforge using the following steps:

Create:

(base) %USERPROFILE%> mamba create -n spyder python=3.11 spyder cython seaborn scikit-learn sympy openpyxl xlrd xlsxwriter lxml sqlalchemy

Update:

(base) %USERPROFILE%> mamba activate spyder
(spyder) %USERPROFILE%> mamba update --all

Launch:

(base) %USERPROFILE%> mamba activate spyder
(spyder) %USERPROFILE%> spyder

spyder – Anaconda

A Python environment for Spyder can be created on Anaconda using the following steps:

Create:

(base) %USERPROFILE%> conda create -n spyder python=3.11 spyder cython seaborn scikit-learn sympy openpyxl xlrd xlsxwriter lxml sqlalchemy -c conda-forge

Update:

(base) %USERPROFILE%> conda activate spyder
(spyder) %USERPROFILE%> conda update --all -c conda-forge

Launch:

(base) %USERPROFILE%> conda activate spyder
(spyder) %USERPROFILE%> spyder

jupyterlab – mambaforge

A Python environment for JupyterLab can be created on Mambaforge using the following steps:

Create:

(base) %USERPROFILE%> mamba create -n jupyterlab jupyterlab
(base) %USERPROFILE%> mamba activate jupyterlab
(jupyterlab) %USERPROFILE%> mamba install cython seaborn scikit-learn sympy openpyxl xlrd xlsxwriter lxml sqlalchemy nodejs ipywidgets plotly jupyterlab-variableinspector ipympl pyqt
(base) %USERPROFILE%> mamba create -n jupyterlab4rc jupyterlab -c "conda-forge/label/jupyterlab_rc"
(base) %USERPROFILE%> mamba activate jupyterlab4rc
(jupyterlab4rc) %USERPROFILE%> mamba install cython seaborn scikit-learn sympy openpyxl xlrd xlsxwriter lxml sqlalchemy nodejs ipywidgets plotly jupyterlab-variableinspector ipympl pyqt

Update:

(base) %USERPROFILE%> mamba activate jupyterlab
(jupyterlab) %USERPROFILE%> mamba update --all

Launch:

(base) %USERPROFILE%> mamba activate jupyterlab
(jupyterlab) %USERPROFILE%> jupyter lab

jupyterlab – Anaconda

A Python environment for JupyterLab can be created on Anaconda using the following steps:

Create:

(base) %USERPROFILE%> conda create -n jupyterlab jupyterlab -c conda-forge
(base) %USERPROFILE%> conda activate jupyterlab
(jupyterlab) %USERPROFILE%> conda install cython seaborn scikit-learn sympy openpyxl xlrd xlsxwriter lxml sqlalchemy nodejs ipywidgets plotly jupyterlab-variableinspector ipympl pyqt -c conda-forge

Note specifying a Python version to install alongside JupyterLab will install an older version of JupyterLab as Anaconda rerelease JupyterLab for different Python versions. Specifying to install JupyterLab only when creating the Python environment will install the latest version of JupyterLab with Python 3.11. The Python environment can be activated so other optional dependencies can be installed.

Update:

(base) %USERPROFILE%> conda activate jupyterlab
(jupyterlab) %USERPROFILE%> conda update --all -c conda-forge

Launch:

(base) %USERPROFILE%> conda activate jupyterlab
(jupyterlab) %USERPROFILE%> jupyter lab

Exporting an Environment to a yml file

A Python environment can be exported to a Yet another Markdown Language (yml) File in Mambaforge using:

(base) %USERPROFILE%> mamba activate spyder
(spyder) %USERPROFILE%> mamba env export > Documents/spyder.yml

Or Anaconda using:

(base) %USERPROFILE%> conda activate spyder
(spyder) %USERPROFILE%> conda env export > Documents/spyder.yml

The file is saved in Documents:

%USERPROFILE%/Documents

The spyder.yml looks like the following:

name: spyder
channels:
  - conda-forge
dependencies:
  - alabaster=0.7.13=pyhd8ed1ab_0
  - arrow=1.2.3=pyhd8ed1ab_0
  - astroid=2.15.4=py311h1ea47a8_0
  - asttokens=2.2.1=pyhd8ed1ab_0
  - atomicwrites=1.4.1=pyhd8ed1ab_0
  - attrs=23.1.0=pyh71513ae_0
  - autopep8=2.0.2=pyhd8ed1ab_0
  - babel=2.12.1=pyhd8ed1ab_1
  - backcall=0.2.0=pyh9f0ad1d_0
  - backports=1.0=pyhd8ed1ab_3
  - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0
  - bcrypt=3.2.2=py311ha68e1ae_1
  - beautifulsoup4=4.12.2=pyha770c72_0
  - binaryornot=0.4.4=py_1
  - black=23.3.0=py311h1ea47a8_1
  - bleach=6.0.0=pyhd8ed1ab_0
  - blis=0.9.0=h8d14728_0
  - brotli=1.0.9=hcfcfb64_8
  - brotli-bin=1.0.9=hcfcfb64_8
  - brotlipy=0.7.0=py311ha68e1ae_1005
  - bzip2=1.0.8=h8ffe710_4
  - ca-certificates=2022.12.7=h5b45459_0
  - certifi=2022.12.7=pyhd8ed1ab_0
  - cffi=1.15.1=py311h7d9ee11_3
  - chardet=5.1.0=py311h1ea47a8_0
  - charset-normalizer=3.1.0=pyhd8ed1ab_0
  - click=8.1.3=win_pyhd8ed1ab_2
  - cloudpickle=2.2.1=pyhd8ed1ab_0
  - colorama=0.4.6=pyhd8ed1ab_0
  - comm=0.1.3=pyhd8ed1ab_0
  - contourpy=1.0.7=py311h005e61a_0
  - cookiecutter=2.1.1=pyh6c4a22f_0
  - cryptography=40.0.2=py311h28e9c30_0
  - cycler=0.11.0=pyhd8ed1ab_0
  - cython=0.29.34=py311h12c1d0e_0
  - debugpy=1.6.7=py311h12c1d0e_0
  - decorator=5.1.1=pyhd8ed1ab_0
  - defusedxml=0.7.1=pyhd8ed1ab_0
  - diff-match-patch=20200713=pyh9f0ad1d_0
  - dill=0.3.6=pyhd8ed1ab_1
  - docstring-to-markdown=0.12=pyhd8ed1ab_0
  - docutils=0.19=py311h1ea47a8_1
  - entrypoints=0.4=pyhd8ed1ab_0
  - et_xmlfile=1.1.0=pyhd8ed1ab_0
  - executing=1.2.0=pyhd8ed1ab_0
  - flake8=6.0.0=pyhd8ed1ab_0
  - fonttools=4.39.3=py311ha68e1ae_0
  - freetype=2.12.1=h546665d_1
  - gettext=0.21.1=h5728263_0
  - glib=2.76.2=h12be248_0
  - glib-tools=2.76.2=h12be248_0
  - greenlet=2.0.2=py311h12c1d0e_0
  - gst-plugins-base=1.22.0=h001b923_2
  - gstreamer=1.22.0=h6b5321d_2
  - icu=72.1=h63175ca_0
  - idna=3.4=pyhd8ed1ab_0
  - imagesize=1.4.1=pyhd8ed1ab_0
  - importlib-metadata=6.6.0=pyha770c72_0
  - importlib_metadata=6.6.0=hd8ed1ab_0
  - importlib_resources=5.12.0=pyhd8ed1ab_0
  - inflection=0.5.1=pyh9f0ad1d_0
  - intel-openmp=2023.1.0=h57928b3_46319
  - intervaltree=3.0.2=py_0
  - ipykernel=6.22.0=pyh025b116_0
  - ipython=8.13.2=pyh08f2357_0
  - ipython_genutils=0.2.0=py_1
  - isort=5.12.0=pyhd8ed1ab_1
  - jaraco.classes=3.2.3=pyhd8ed1ab_0
  - jedi=0.18.2=pyhd8ed1ab_0
  - jellyfish=0.9.0=py311ha68e1ae_2
  - jinja2=3.1.2=pyhd8ed1ab_1
  - jinja2-time=0.2.0=pyhd8ed1ab_3
  - joblib=1.2.0=pyhd8ed1ab_0
  - jsonschema=4.17.3=pyhd8ed1ab_0
  - jupyter_client=8.2.0=pyhd8ed1ab_0
  - jupyter_core=5.3.0=py311h1ea47a8_0
  - jupyterlab_pygments=0.2.2=pyhd8ed1ab_0
  - keyring=23.13.1=py311h1ea47a8_0
  - kiwisolver=1.4.4=py311h005e61a_1
  - krb5=1.20.1=heb0366b_0
  - lazy-object-proxy=1.9.0=py311ha68e1ae_0
  - lcms2=2.15=h3e3b177_1
  - lerc=4.0.0=h63175ca_0
  - libblas=3.9.0=16_win64_blis
  - libbrotlicommon=1.0.9=hcfcfb64_8
  - libbrotlidec=1.0.9=hcfcfb64_8
  - libbrotlienc=1.0.9=hcfcfb64_8
  - libcblas=3.9.0=16_win64_blis
  - libclang=16.0.3=default_h8b4101f_0
  - libclang13=16.0.3=default_h45d3cf4_0
  - libdeflate=1.18=hcfcfb64_0
  - libexpat=2.5.0=h63175ca_1
  - libffi=3.4.2=h8ffe710_5
  - libglib=2.76.2=he8f3873_0
  - libhwloc=2.9.1=h51c2c0f_0
  - libiconv=1.17=h8ffe710_0
  - libjpeg-turbo=2.1.5.1=hcfcfb64_0
  - liblapack=3.9.0=5_hd5c7e75_netlib
  - libogg=1.3.4=h8ffe710_1
  - libpng=1.6.39=h19919ed_0
  - libsodium=1.0.18=h8d14728_1
  - libspatialindex=1.9.3=h39d44d4_4
  - libsqlite=3.40.0=hcfcfb64_1
  - libtiff=4.5.0=h6c8260b_6
  - libvorbis=1.3.7=h0e60522_0
  - libwebp=1.3.0=hcfcfb64_0
  - libwebp-base=1.3.0=hcfcfb64_0
  - libxcb=1.13=hcd874cb_1004
  - libxml2=2.10.4=hc3477c8_0
  - libxslt=1.1.37=h0192164_0
  - libzlib=1.2.13=hcfcfb64_4
  - lxml=4.9.2=py311h5942461_0
  - m2w64-gcc-libgfortran=5.3.0=6
  - m2w64-gcc-libs=5.3.0=7
  - m2w64-gcc-libs-core=5.3.0=7
  - m2w64-gmp=6.1.0=2
  - m2w64-libwinpthread-git=5.0.0.4634.697f757=2
  - markupsafe=2.1.2=py311ha68e1ae_0
  - matplotlib-base=3.7.1=py311h6e989c2_0
  - matplotlib-inline=0.1.6=pyhd8ed1ab_0
  - mccabe=0.7.0=pyhd8ed1ab_0
  - mistune=2.0.5=pyhd8ed1ab_0
  - mkl=2023.1.0=h6a75c08_48682
  - more-itertools=9.1.0=pyhd8ed1ab_0
  - mpmath=1.3.0=pyhd8ed1ab_0
  - msys2-conda-epoch=20160418=1
  - munkres=1.1.4=pyh9f0ad1d_0
  - mypy_extensions=1.0.0=pyha770c72_0
  - nbclient=0.7.4=pyhd8ed1ab_0
  - nbconvert=7.3.1=pyhd8ed1ab_0
  - nbconvert-core=7.3.1=pyhd8ed1ab_0
  - nbconvert-pandoc=7.3.1=pyhd8ed1ab_0
  - nbformat=5.8.0=pyhd8ed1ab_0
  - nest-asyncio=1.5.6=pyhd8ed1ab_0
  - numpy=1.24.3=py311h0b4df5a_0
  - numpydoc=1.5.0=pyhd8ed1ab_0
  - openjpeg=2.5.0=ha2aaf27_2
  - openpyxl=3.1.2=py311ha68e1ae_0
  - openssl=3.1.0=hcfcfb64_3
  - packaging=23.1=pyhd8ed1ab_0
  - pandas=2.0.1=py311hf63dbb6_0
  - pandoc=2.19.2=h57928b3_2
  - pandocfilters=1.5.0=pyhd8ed1ab_0
  - paramiko=3.1.0=pyhd8ed1ab_0
  - parso=0.8.3=pyhd8ed1ab_0
  - pathspec=0.11.1=pyhd8ed1ab_0
  - patsy=0.5.3=pyhd8ed1ab_0
  - pcre2=10.40=h17e33f8_0
  - pexpect=4.8.0=pyh1a96a4e_2
  - pickleshare=0.7.5=py_1003
  - pillow=9.5.0=py311hc67b2de_0
  - pip=23.1.2=pyhd8ed1ab_0
  - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_0
  - platformdirs=3.5.0=pyhd8ed1ab_0
  - pluggy=1.0.0=pyhd8ed1ab_5
  - ply=3.11=py_1
  - pooch=1.7.0=pyha770c72_3
  - prompt-toolkit=3.0.38=pyha770c72_0
  - prompt_toolkit=3.0.38=hd8ed1ab_0
  - psutil=5.9.5=py311ha68e1ae_0
  - pthread-stubs=0.4=hcd874cb_1001
  - pthreads-win32=2.9.1=hfa6e2cd_3
  - ptyprocess=0.7.0=pyhd3deb0d_0
  - pure_eval=0.2.2=pyhd8ed1ab_0
  - pycodestyle=2.10.0=pyhd8ed1ab_0
  - pycparser=2.21=pyhd8ed1ab_0
  - pydocstyle=6.3.0=pyhd8ed1ab_0
  - pyflakes=3.0.1=pyhd8ed1ab_0
  - pygments=2.15.1=pyhd8ed1ab_0
  - pylint=2.17.3=pyhd8ed1ab_0
  - pylint-venv=3.0.1=pyhd8ed1ab_0
  - pyls-spyder=0.4.0=pyhd8ed1ab_0
  - pynacl=1.5.0=py311hd53affc_2
  - pyopenssl=23.1.1=pyhd8ed1ab_0
  - pyparsing=3.0.9=pyhd8ed1ab_0
  - pyqt=5.15.7=py311h125bc19_3
  - pyqt5-sip=12.11.0=py311h12c1d0e_3
  - pyqtwebengine=5.15.7=py311h5a77453_3
  - pyrsistent=0.19.3=py311ha68e1ae_0
  - pysocks=1.7.1=pyh0701188_6
  - python=3.11.3=h2628c8c_0_cpython
  - python-dateutil=2.8.2=pyhd8ed1ab_0
  - python-fastjsonschema=2.16.3=pyhd8ed1ab_0
  - python-lsp-black=1.2.1=pyhd8ed1ab_0
  - python-lsp-jsonrpc=1.0.0=pyhd8ed1ab_0
  - python-lsp-server=1.7.2=pyhd8ed1ab_0
  - python-lsp-server-base=1.7.2=pyhd8ed1ab_0
  - python-slugify=8.0.1=pyhd8ed1ab_1
  - python-tzdata=2023.3=pyhd8ed1ab_0
  - python_abi=3.11=3_cp311
  - pytoolconfig=1.2.5=pyhd8ed1ab_0
  - pytz=2023.3=pyhd8ed1ab_0
  - pywin32=304=py311h12c1d0e_2
  - pywin32-ctypes=0.2.0=py311h1ea47a8_1006
  - pyyaml=6.0=py311ha68e1ae_5
  - pyzmq=25.0.2=py311h7b3f143_0
  - qdarkstyle=3.1=pyhd8ed1ab_0
  - qstylizer=0.2.2=pyhd8ed1ab_0
  - qt-main=5.15.8=h7f2b912_9
  - qt-webengine=5.15.8=h5b1ea0b_0
  - qtawesome=1.2.3=pyhd8ed1ab_0
  - qtconsole=5.4.3=pyhd8ed1ab_0
  - qtconsole-base=5.4.3=pyha770c72_0
  - qtpy=2.3.1=pyhd8ed1ab_0
  - requests=2.29.0=pyhd8ed1ab_0
  - rope=1.8.0=pyhd8ed1ab_0
  - rtree=1.0.1=py311hcacb13a_1
  - scikit-learn=1.2.2=py311h142b183_1
  - scipy=1.10.1=py311h37ff6ca_1
  - seaborn=0.12.2=hd8ed1ab_0
  - seaborn-base=0.12.2=pyhd8ed1ab_0
  - setuptools=67.7.2=pyhd8ed1ab_0
  - sip=6.7.9=py311h12c1d0e_0
  - six=1.16.0=pyh6c4a22f_0
  - snowballstemmer=2.2.0=pyhd8ed1ab_0
  - sortedcontainers=2.4.0=pyhd8ed1ab_0
  - soupsieve=2.3.2.post1=pyhd8ed1ab_0
  - sphinx=7.0.0=pyhd8ed1ab_0
  - sphinxcontrib-applehelp=1.0.4=pyhd8ed1ab_0
  - sphinxcontrib-devhelp=1.0.2=py_0
  - sphinxcontrib-htmlhelp=2.0.1=pyhd8ed1ab_0
  - sphinxcontrib-jsmath=1.0.1=py_0
  - sphinxcontrib-qthelp=1.0.3=py_0
  - sphinxcontrib-serializinghtml=1.1.5=pyhd8ed1ab_2
  - spyder=5.4.3=py311h1ea47a8_0
  - spyder-kernels=2.4.3=win_pyhd8ed1ab_0
  - sqlalchemy=2.0.12=py311ha68e1ae_0
  - stack_data=0.6.2=pyhd8ed1ab_0
  - statsmodels=0.14.0=py311h59ca53f_1
  - sympy=1.11.1=pyh04b8f61_3
  - tbb=2021.9.0=h91493d7_0
  - text-unidecode=1.3=py_0
  - textdistance=4.5.0=pyhd8ed1ab_0
  - threadpoolctl=3.1.0=pyh8a188c0_0
  - three-merge=0.1.1=pyh9f0ad1d_0
  - tinycss2=1.2.1=pyhd8ed1ab_0
  - tk=8.6.12=h8ffe710_0
  - toml=0.10.2=pyhd8ed1ab_0
  - tomli=2.0.1=pyhd8ed1ab_0
  - tomlkit=0.11.8=pyha770c72_0
  - tornado=6.3=py311ha68e1ae_0
  - traitlets=5.9.0=pyhd8ed1ab_0
  - typing-extensions=4.5.0=hd8ed1ab_0
  - typing_extensions=4.5.0=pyha770c72_0
  - tzdata=2023c=h71feb2d_0
  - ucrt=10.0.22621.0=h57928b3_0
  - ujson=5.7.0=py311h12c1d0e_0
  - unidecode=1.3.6=pyhd8ed1ab_0
  - urllib3=1.26.15=pyhd8ed1ab_0
  - vc=14.3=hb25d44b_16
  - vc14_runtime=14.34.31931=h5081d32_16
  - vs2015_runtime=14.34.31931=hed1258a_16
  - watchdog=3.0.0=py311h1ea47a8_0
  - wcwidth=0.2.6=pyhd8ed1ab_0
  - webencodings=0.5.1=py_1
  - whatthepatch=1.0.4=pyhd8ed1ab_0
  - wheel=0.40.0=pyhd8ed1ab_0
  - win_inet_pton=1.1.0=pyhd8ed1ab_6
  - wrapt=1.15.0=py311ha68e1ae_0
  - xlrd=2.0.1=pyhd8ed1ab_3
  - xlsxwriter=3.1.0=pyhd8ed1ab_0
  - xorg-libxau=1.0.9=hcd874cb_0
  - xorg-libxdmcp=1.1.3=hcd874cb_0
  - xz=5.2.6=h8d14728_0
  - yaml=0.2.5=h8ffe710_2
  - yapf=0.32.0=pyhd8ed1ab_0
  - zeromq=4.3.4=h0e60522_1
  - zipp=3.15.0=pyhd8ed1ab_0
  - zstd=1.5.2=h12be248_6
prefix: %USERPROFILE%\mambaforge\envs\spyder

This is a small file which gives the details about the Python environment which can be emailed or copied.

Creating an Environment from a yml file

A Python environment can be created from a yml file in Mambaforge using:


(base) %USERPROFILE%> mamba env create -n spyder -f Documents/spyder.yml

Or in Anaconda using:


(base) %USERPROFILE%> conda env create -n spyder -f Documents/spyder.yml

The Python environment spyder is created:

  Summary:

  Install: 269 packages

  Total download: 0 B

───────────────────────────────────────────────────────────────────────────────────────────────────────



Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate spyder
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) %USERPROFILE%>