Installation ============ pandarm is a Python package that includes a C++ extension for numerical operations. Standard installation ------------------------------ You can install pandarm using Pip:: pip install pandarm Or Conda:: conda install pandarm --channel conda-forge Compiling from source code ------------------------------ You may want to compile pandarm locally if you're modifying the source code or need to use a version that's missing binary installers for your platform. Mac users should start by running ``xcode-select --install`` to make sure you have Apple's Xcode command line tools, which are needed behind the scenes. Windows users will need the `Microsoft Visual C++ Build Tools `_. pandarm's build-time requirements are ``cython``, ``numpy``, and a C++ compiler that supports the C++11 standard. Additionally, the compiler needs to support OpenMP to allow pandarm to use multithreading. The smoothest route is to get the compilers from Conda Forge. The necessary dependencies are listed in the ``environment.yml`` file. Running pandarm's setup script will trigger compilation:: conda env create pip install . -e You'll see a lot of status messages go by, but hopefully no errors. MacOS 10.14 (but not newer versions) often needs additional header files installed. If you see a compilation error like ``'wchar.h' file not found`` in MacOS 10.14, you can resolve it by running this command:: open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg Advanced compilation tips ------------------------------ If you prefer not to use Conda, you can skip the ``clang`` and ``llvm-openmp`` packages. Compilation will likely work fine with your system's built-in toolchain. The default C++ compiler on Macs doesn't support OpenMP, though, meaning that pandarm won't be able to use multithreading. You can set the ``CC`` environment variable to specify a compiler of your choice. See writeup in the original pandana repository at `PR #137 `_ for discussion of this. If you need to make additional modifications, you can edit the compilation script in your local copy of ``setup.py``. Multithreading ------------------------------ You can check how many threads pandarm is able to use on your machine by running the ``examples/simple_example.py`` script.