Skip to content

Commit 86b1216

Browse files
author
MarcoGorelli
committed
Backport PR #48220: WEB: Use mambaforge for the getting started installation instructions?
1 parent cbca4e0 commit 86b1216

File tree

2 files changed

+83
-87
lines changed

2 files changed

+83
-87
lines changed

doc/source/development/contributing_codebase.rst

+5
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ If you want to run checks on all recently committed files on upstream/main you c
7575

7676
without needing to have done ``pre-commit install`` beforehand.
7777

78+
.. note::
79+
80+
You may want to periodically run ``pre-commit gc``, to clean up repos
81+
which are no longer used.
82+
7883
.. note::
7984

8085
If you have conflicting installations of ``virtualenv``, then you may get an

doc/source/development/contributing_environment.rst

+78-87
Original file line numberDiff line numberDiff line change
@@ -16,63 +16,8 @@ locally before pushing your changes.
1616
:local:
1717

1818

19-
Creating an environment using Docker
20-
--------------------------------------
21-
22-
Instead of manually setting up a development environment, you can use `Docker
23-
<https://docs.docker.com/get-docker/>`_ to automatically create the environment with just several
24-
commands. pandas provides a ``DockerFile`` in the root directory to build a Docker image
25-
with a full pandas development environment.
26-
27-
**Docker Commands**
28-
29-
Build the Docker image::
30-
31-
# Build the image pandas-yourname-env
32-
docker build --tag pandas-yourname-env .
33-
# Or build the image by passing your GitHub username to use your own fork
34-
docker build --build-arg gh_username=yourname --tag pandas-yourname-env .
35-
36-
Run Container::
37-
38-
# Run a container and bind your local repo to the container
39-
docker run -it -w /home/pandas --rm -v path-to-local-pandas-repo:/home/pandas pandas-yourname-env
40-
41-
Then a ``pandas-dev`` virtual environment will be available with all the development dependencies.
42-
43-
.. code-block:: shell
44-
45-
root@... :/home/pandas# conda env list
46-
# conda environments:
47-
#
48-
base * /opt/conda
49-
pandas-dev /opt/conda/envs/pandas-dev
50-
51-
.. note::
52-
If you bind your local repo for the first time, you have to build the C extensions afterwards.
53-
Run the following command inside the container::
54-
55-
python setup.py build_ext -j 4
56-
57-
You need to rebuild the C extensions anytime the Cython code in ``pandas/_libs`` changes.
58-
This most frequently occurs when changing or merging branches.
59-
60-
*Even easier, you can integrate Docker with the following IDEs:*
61-
62-
**Visual Studio Code**
63-
64-
You can use the DockerFile to launch a remote session with Visual Studio Code,
65-
a popular free IDE, using the ``.devcontainer.json`` file.
66-
See https://code.visualstudio.com/docs/remote/containers for details.
67-
68-
**PyCharm (Professional)**
69-
70-
Enable Docker support and use the Services tool window to build and manage images as well as
71-
run and interact with containers.
72-
See https://www.jetbrains.com/help/pycharm/docker.html for details.
73-
74-
Creating an environment without Docker
75-
---------------------------------------
19+
Option 1: creating an environment without Docker
20+
------------------------------------------------
7621

7722
Installing a C compiler
7823
~~~~~~~~~~~~~~~~~~~~~~~
@@ -82,9 +27,9 @@ operations. To install pandas from source, you need to compile these C
8227
extensions, which means you need a C compiler. This process depends on which
8328
platform you're using.
8429

85-
If you have setup your environment using ``conda``, the packages ``c-compiler``
30+
If you have setup your environment using :ref:`mamba <contributing.mamba>`, the packages ``c-compiler``
8631
and ``cxx-compiler`` will install a fitting compiler for your platform that is
87-
compatible with the remaining conda packages. On Windows and macOS, you will
32+
compatible with the remaining mamba packages. On Windows and macOS, you will
8833
also need to install the SDKs as they have to be distributed separately.
8934
These packages will automatically be installed by using the ``pandas``
9035
``environment.yml`` file.
@@ -117,16 +62,16 @@ To setup the right paths on the commandline, call
11762

11863
**macOS**
11964

120-
To use the ``conda``-based compilers, you will need to install the
65+
To use the :ref:`mamba <contributing.mamba>`-based compilers, you will need to install the
12166
Developer Tools using ``xcode-select --install``. Otherwise
12267
information about compiler installation can be found here:
12368
https://devguide.python.org/setup/#macos
12469

12570
**Linux**
12671

127-
For Linux-based ``conda`` installations, you won't have to install any
128-
additional components outside of the conda environment. The instructions
129-
below are only needed if your setup isn't based on conda environments.
72+
For Linux-based :ref:`mamba <contributing.mamba>` installations, you won't have to install any
73+
additional components outside of the mamba environment. The instructions
74+
below are only needed if your setup isn't based on mamba environments.
13075

13176
Some Linux distributions will come with a pre-installed C compiler. To find out
13277
which compilers (and versions) are installed on your system::
@@ -152,14 +97,15 @@ compiler installation instructions.
15297

15398
Let us know if you have any difficulties by opening an issue or reaching out on `Gitter <https://gitter.im/pydata/pandas/>`_.
15499

155-
Creating a Python environment
156-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100+
.. _contributing.mamba:
101+
102+
Option 1a: using mamba (recommended)
103+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
157104

158105
Now create an isolated pandas development environment:
159106

160-
* Install either `Anaconda <https://www.anaconda.com/products/individual>`_, `miniconda
161-
<https://docs.conda.io/en/latest/miniconda.html>`_, or `miniforge <https://github.com/conda-forge/miniforge>`_
162-
* Make sure your conda is up to date (``conda update conda``)
107+
* Install `mamba <https://mamba.readthedocs.io/en/latest/installation.html>`_
108+
* Make sure your mamba is up to date (``mamba update mamba``)
163109
* Make sure that you have :any:`cloned the repository <contributing.forking>`
164110
* ``cd`` to the pandas source directory
165111

@@ -172,11 +118,8 @@ We'll now kick off a three-step process:
172118
.. code-block:: none
173119
174120
# Create and activate the build environment
175-
conda env create -f environment.yml
176-
conda activate pandas-dev
177-
178-
# or with older versions of Anaconda:
179-
source activate pandas-dev
121+
mamba env create
122+
mamba activate pandas-dev
180123
181124
# Build and install pandas
182125
python setup.py build_ext -j 4
@@ -186,27 +129,20 @@ At this point you should be able to import pandas from your locally built versio
186129

187130
$ python
188131
>>> import pandas
189-
>>> print(pandas.__version__)
190-
0.22.0.dev0+29.g4ad6d4d74
132+
>>> print(pandas.__version__) # note: the exact output may differ
133+
1.5.0.dev0+1355.ge65a30e3eb.dirty
191134

192135
This will create the new environment, and not touch any of your existing environments,
193136
nor any existing Python installation.
194137

195-
To view your environments::
196-
197-
conda info -e
198-
199138
To return to your root environment::
200139

201-
conda deactivate
202-
203-
See the full conda docs `here <https://conda.io/projects/conda/en/latest/>`__.
140+
mamba deactivate
204141

142+
Option 1b: using pip
143+
~~~~~~~~~~~~~~~~~~~~
205144

206-
Creating a Python environment (pip)
207-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
208-
209-
If you aren't using conda for your development environment, follow these instructions.
145+
If you aren't using mamba for your development environment, follow these instructions.
210146
You'll need to have at least the :ref:`minimum Python version <install.version>` that pandas supports.
211147
You also need to have ``setuptools`` 51.0.0 or later to build pandas.
212148

@@ -257,7 +193,7 @@ Consult the docs for setting up pyenv `here <https://github.com/pyenv/pyenv>`__.
257193

258194
Below is a brief overview on how to set-up a virtual environment with Powershell
259195
under Windows. For details please refer to the
260-
`official virtualenv user guide <https://virtualenv.pypa.io/en/latest/user_guide.html#activators>`__
196+
`official virtualenv user guide <https://virtualenv.pypa.io/en/latest/user_guide.html#activators>`__.
261197

262198
Use an ENV_DIR of your choice. We'll use ~\\virtualenvs\\pandas-dev where
263199
'~' is the folder pointed to by either $env:USERPROFILE (Powershell) or
@@ -278,3 +214,58 @@ should already exist.
278214
# Build and install pandas
279215
python setup.py build_ext -j 4
280216
python -m pip install -e . --no-build-isolation --no-use-pep517
217+
218+
Option 2: creating an environment using Docker
219+
----------------------------------------------
220+
221+
Instead of manually setting up a development environment, you can use `Docker
222+
<https://docs.docker.com/get-docker/>`_ to automatically create the environment with just several
223+
commands. pandas provides a ``DockerFile`` in the root directory to build a Docker image
224+
with a full pandas development environment.
225+
226+
**Docker Commands**
227+
228+
Build the Docker image::
229+
230+
# Build the image pandas-yourname-env
231+
docker build --tag pandas-yourname-env .
232+
# Or build the image by passing your GitHub username to use your own fork
233+
docker build --build-arg gh_username=yourname --tag pandas-yourname-env .
234+
235+
Run Container::
236+
237+
# Run a container and bind your local repo to the container
238+
docker run -it -w /home/pandas --rm -v path-to-local-pandas-repo:/home/pandas pandas-yourname-env
239+
240+
Then a ``pandas-dev`` virtual environment will be available with all the development dependencies.
241+
242+
.. code-block:: shell
243+
244+
root@... :/home/pandas# conda env list
245+
# conda environments:
246+
#
247+
base * /opt/conda
248+
pandas-dev /opt/conda/envs/pandas-dev
249+
250+
.. note::
251+
If you bind your local repo for the first time, you have to build the C extensions afterwards.
252+
Run the following command inside the container::
253+
254+
python setup.py build_ext -j 4
255+
256+
You need to rebuild the C extensions anytime the Cython code in ``pandas/_libs`` changes.
257+
This most frequently occurs when changing or merging branches.
258+
259+
*Even easier, you can integrate Docker with the following IDEs:*
260+
261+
**Visual Studio Code**
262+
263+
You can use the DockerFile to launch a remote session with Visual Studio Code,
264+
a popular free IDE, using the ``.devcontainer.json`` file.
265+
See https://code.visualstudio.com/docs/remote/containers for details.
266+
267+
**PyCharm (Professional)**
268+
269+
Enable Docker support and use the Services tool window to build and manage images as well as
270+
run and interact with containers.
271+
See https://www.jetbrains.com/help/pycharm/docker.html for details.

0 commit comments

Comments
 (0)