From 017a64576a5a529bc932453e899bd41cfb038ed1 Mon Sep 17 00:00:00 2001 From: Daniel Schmidt Date: Sun, 27 Feb 2022 16:57:58 +0100 Subject: [PATCH] DOC: Add "build C extensions" note (#46055) --- .../development/contributing_environment.rst | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/doc/source/development/contributing_environment.rst b/doc/source/development/contributing_environment.rst index b28f7c833d7ad..fb27d07cfb18f 100644 --- a/doc/source/development/contributing_environment.rst +++ b/doc/source/development/contributing_environment.rst @@ -26,14 +26,28 @@ with a full pandas development environment. **Docker Commands** -Pass your GitHub username in the ``DockerFile`` to use your own fork:: +Build the Docker image:: # Build the image pandas-yourname-env docker build --tag pandas-yourname-env . - # Run a container and bind your local forked repo, pandas-yourname, to the container - docker run -it --rm -v path-to-pandas-yourname:/home/pandas-yourname pandas-yourname-env + # Or build the image by passing your GitHub username to use your own fork + docker build --build-arg gh_username=yourname --tag pandas-yourname-env . -Even easier, you can integrate Docker with the following IDEs: +Run Container:: + + # Run a container and bind your local repo to the container + docker run -it -w /home/pandas --rm -v path-to-local-pandas-repo:/home/pandas pandas-yourname-env + +.. note:: + If you bind your local repo for the first time, you have to build the C extensions afterwards. + Run the following command inside the container:: + + python setup.py build_ext -j 4 + + You need to rebuild the C extensions anytime the Cython code in ``pandas/_libs`` changes. + This most frequently occurs when changing or merging branches. + +*Even easier, you can integrate Docker with the following IDEs:* **Visual Studio Code** @@ -47,11 +61,6 @@ Enable Docker support and use the Services tool window to build and manage image run and interact with containers. See https://www.jetbrains.com/help/pycharm/docker.html for details. -Note that you might need to rebuild the C extensions if/when you merge with upstream/main using:: - - python setup.py build_ext -j 4 - - Creating an environment without Docker ---------------------------------------