Setting Up Anaconda, Jupyter, and PyCharm for Python Development on Windows

Introduction to Anaconda and Python Environment Configuration

For Python development, especially in data science, machine learning, and deep learning, Anaconda is an indispensable platform. This guide covers the essential steps for installing Anaconda on a Windows system and optimizing its configuration, including setting up package mirrors, configuring Jupyter Notebook, and integrating with PyCharm.

  1. Anaconda Installation

Begin by downloading the latest Anaconda installer from the official Anaconda website. The installation process is straightforward; simply follow the default prompts provided by the installer.

  1. Managing Conda Package Channels

Configuring Conda channels to use domestic mirrors can significantly speed up package downloads and installations. There are two primary methods for this: editing the .condarc file directly or using command-line commands.

2.1. Configuring Conda Channels via .condarc File

2.1.1. Generating the .condarc File

If you don't already have a .condarc file, you can generate one by opening the Anaconda Prompt and executing the following command:

conda config --set show_channel_urls yes

This command creates a .condarc file in your user's home directory (e.g., C:\Users\YourUsername).

2.1.2. Editing the .condarc File for Mirror Sources

Locate the .condarc file in your user directory. Open it with a text editor (like Notepad). You can then paste the configuration for your chosen mirror. Here are a few popular Chinese mirror configurations:

General structure for .condarc:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - <mirror_url>/anaconda/pkgs/main
  - <mirror_url>/anaconda/pkgs/r
  - <mirror_url>/anaconda/pkgs/msys2
custom_channels:
  conda-forge: <mirror_url>/anaconda/cloud
  msys2: <mirror_url>/anaconda/cloud
  bioconda: <mirror_url>/anaconda/cloud
  menpo: <mirror_url>/anaconda/cloud
  pytorch: <mirror_url>/anaconda/cloud
  pytorch-lts: <mirror_url>/anaconda/cloud
  simpleitk: <mirror_url>/anaconda/cloud
  deepmodeling: <mirror_url>/anaconda/cloud/
ssl_verify: false # Set to false if you encounter SSL certificate errors with mirrors
auto_activate_base: false

Example: Tsignhua University Mirror (recommended for general use)

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
ssl_verify: false
auto_activate_base: false

After pasting your chosen mirror configuration, save the .condarc file.

2.2. Configuring Conda Channels via Command Line

Alternatively, you can add channels using the Anaconda Prompt. For example, to add Tsinghua University's mirror:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
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/msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch-lts
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/simpleitk
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/deepmodeling
conda config --set show_channel_urls yes

Note: The command line approach adds channels sequentially to your .condarc file. You might need to adjust the order or remove default channels manually in the file if specific prioritization is required.

2.3. Clearing Conda Index Cache

After modifying your .condarc file or adding channels via the command line, it's crucial to clear the Conda index cache to ensure the new mirror sources are used for package resolution:

conda clean -i

If you switch between different mirror sites frequently, it's recommended to perform a more comprehensive cleanup:

conda clean -a

This command clears downloaded package caches, extracted but uninstalled packages, and mirror index caches.

2.4. Verifying Conda Configuration

To inspect your current Conda configuraton, including all configured channels, run:

conda config --show

2.5. Restoring Default Conda Channels

To revert to default channels, you can either delete the custom .condarc file (and optionally restore a backup if you made one) or use the command line:

conda config --remove-key channels

This command removes all custom channel entries from your .condarc file.

  1. Configuring PyPI Package Sources (pip Mirrors)

While Conda is excellent for environment management, some packages are only available on PyPI or might install better with pip. Configuring a PyPI mirror is beneficial for faster pip installations.

Popular PyPI mirrors:

  • Tsinghua University: https://pypi.tuna.tsinghua.edu.cn/simple
  • Beijing Foreign Studies University: https://mirrors.bfsu.edu.cn/pypi/web/simple
  • Aliyun: https://mirrors.aliyun.com/pypi/simple/
  • University of Science and Technology of China: https://pypi.mirrors.ustc.edu.cn/simple/

3.1. Permanent PyPI Mirror Configuration

3.1.1. Using a pip.ini Configuration File

  1. Navigate to your user's Roaming folder by typing %APPDATA% into the Windows Run dialog (Win + R) or File Explorer address bar and pressing Enter.
  2. Inside the Roaming folder, create a new folder named pip if it doesn't already exist.
  3. Inside the pip folder, create a new file named pip.ini.
  4. Open pip.ini with a text editor and add the following content (using Tsinghua mirror as an example):
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host = mirrors.tsinghua.edu.cn

Save the file. If a pip.ini file already exists, simply add or modify the relevant sections.

3.1.2. Using pip config Command

You can also set the default PyPI mirror via the command line:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

To add the trusted host for better security/reliability:

pip config set install.trusted-host mirrors.tsinghua.edu.cn

3.1.3. Verifying Current PyPI Source

To check which PyPI source pip is currently using, run:

pip config list

3.1.4. Removing Permanent PyPI Configuration

To remove the custom PyPI mirror setting, you can either delete the pip.ini file or use the command line:

pip config unset global.index-url

3.2. Temporary PyPI Mirror Usage

For a one-time package installation using a specific mirror, you can specify it directly in the pip install command:

pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple

For potentially untrusted hosts or to avoid SSL warnings, you can add --trusted-host:

pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
  1. Jupyter Notebook Configuration

4.1. Customizing Jupyter Notebook's Default Startup Directory

By default, Jupyter Notebook starts in your user's home directory. To change this to a dedicated projects folder:

  1. Generate the configuration file: Open Anaconda Prompt and run: ``` jupyter notebook --generate-config
    
     This creates `jupyter_notebook_config.py` in `C:\Users\YourUsername\.jupyter`.
    
  2. Edit the configuration file: Open C:\Users\YourUsername\.jupyter\jupyter_notebook_config.py with a text editor.
  3. Locate and modify the directory setting: Search for c.NotebookApp.notebook_dir. Uncomment the line (remove the #) and set it to your desired path, using double backslashes (\\) or forward slashes (/) for Windows paths. For example: ``` c.NotebookApp.notebook_dir = 'D:\ProgramFilesStore\Anaconda3\JupyterNotebooks'
    
     Save the file.
    
  4. Modify the Jupyter Notebook shortcut (if applicable): If you launch Jupyter from a desktop shortcut, right-click the shortcut, select "Properties," and in the "Target" field, remove "%USERPROFILE%/" from the end. Apply and save the changes.

When you next launch Jupyter Notebook, it should open directly in your specified directory.

4.2. Configuring Jupyter Kernels for Multiple Conda Environments

To make kernels from all your Conda environments available in Jupyter Notebook:

  1. Install ipykernel in each desired environment: Activate each Conda environment (except base, which usually has it by default) and install ipykernel. ``` conda activate my_env_name conda install ipykernel conda deactivate
    
     Repeat for all environments you want to expose to Jupyter.
    
  2. Install nb_conda_kernels in the base environment: This package allows Jupyter to automatically discover and list all Conda environments as kernels. ``` conda activate base conda install nb_conda_kernels
    
    

Now, when you launch Jupyter Notebook, you will see an option to select kernels from all your Conda environments when creating a new notebook or changing an existing one.

4.3. Enabling Auto-completion in Jupyter Notebook with nbextensions

jupyter_contrib_nbextensions provides a collection of useful extensions for Jupyter Notebook, including advanced auto-completion.

  1. Install jupyter_contrib_nbextensions: Activate your base environment and install the package: ``` conda activate base conda install -c conda-forge jupyter_contrib_nbextensions
  2. Enable the extensions: ``` jupyter contrib nbextension install --user
  3. Configure extensions in Jupyter: Restart Jupyter Notebook. Open any notebook and navigate to the "Nbextensions" tab (usually on the Jupyter home page, next to "Files", "Running", "Clusters"). Here, you can enable specific extensions. For auto-completion, look for and check "Hinterland." You might also find "Codefolding" and "Table of Contents (2)" useful.

Once "Hinterland" is enabled, you can use Tab for auto-completion suggestions while typing code in your Jupyter notebooks.

  1. Configuring PyCharm's Python Interpreter

To use your Anaconda environments as Python interpreters in PyCharm:

  1. Open PyCharm and go to File > Settings (or PyCharm > Preferences on macOS).
  2. In the settings window, navigate to Project: [Your Project Name] > Python Interpreter.
  3. Click the gear icon (⚙️) next to the Python Interpreter dropdown and select Add....
  4. In the "Add Python Interpreter" dialog, choose Conda Environment from the left pane.
  5. Select Existing Environment. PyCharm should automatically detect your Anaconda installation and available environments. Choose the desired environment from the dropdown list (e.g., base or a custom virtual environment like my_env_name).
  6. Click OK to apply the changes. PyCharm will now use the selected Conda environment's Python interpreter for your project.

Appendix: Conda vs. pip - Key Differences

Both pip and conda are package managers, but they operate with different scopes and features:

  • Source of Packages:
    • pip: Python's default package installer, fetching packages primarily from PyPI (Python Package Index), which hosts a vast collection of Python-specific libraries.
    • conda: Anaconda's package and environment manager. It retrieves packages from Anaconda's repositories (or configured mirrors), which often include not only Python packages but also libraries written in C, C++, R, and other languages, along with their non-Python dependencies.
  • Supported Languages:
    • pip: Strictly for Python packages.
    • conda: A language-agnostic package manager, capable of managing packages for Python, R, Java, JavaScript, C/C++, and more.
  • Dependency Management:
    • pip: While it manages Python package dependencies, its dependency resolution can sometimes be less robust, potential leading to conflicts between packages in a single environment.
    • conda: Employs a more sophisticated dependency solver, ensuring that all packages within an environment are compatible and resolving conflicts more effectively.
  • Environment Management:
    • pip: Does not inherently manage environments. It relies on tools like venv (Python's built-in virtual environment creator) or virtualenv to create isolated Python environments.
    • conda: Includes powerful built-in environment management capabilities, allowing users to easily create, switch, and manage completely isolated environments, each with its own set of packages and Python versions.
  • Package Storage:
    • pip: Packages are installed directly into the active Python environment's site-packages directory. If using a system-wide Python, they go to ~/.local/lib/pythonX.Y/site-packages.
    • conda: Packages are typically stored in a central anaconda3/pkgs directory and then symlinked or hardlinked into specific environment directories. This can save disk space and download time if multiple environments use the same package version.

Recommendation: When working within an Anaconda environment, prioritize using conda install for package management whenever possible due to its superior dependency resolution and environment management features. Reserve pip install for packages not available through Conda channels.

Tags: anaconda Jupyter Notebook conda python Package Management

Posted on Sun, 10 May 2026 05:12:46 +0000 by jeffkee