Project

General

Profile

Numextension » History » Revision 2

Revision 1 (Jim Pulokas, 11/29/2020 03:13 PM) → Revision 2/8 (Jim Pulokas, 11/29/2020 08:58 PM)

h1. Numextension 

 Numextension is a Python module containing a set of functions Leginon needs to operate on Numpy arrays.     Since it is implemented in C rather than in pure Python, the module must be compliled before using.    You can avoid compiling yourself by using one of the provided Windows installers for commonly used versions of Python and Numpy.     For non-standard or newer versions of Python/Numpy, use the instructions below for doing your own compile. 

 h2. Pre-compiled Windows Installers 

 * add here... 

 h2. Compiling Numextension on Windows 

 h3. Install Build Tools 

 Windows versions of Python and Numpy are developed using Microsoft Visual Studio.    Extension modules written in C should also be compiled with VS. Luckily you do not have to install a full version of Visual Studio.    Compiling a Python extension only requires a minimal set of command line build tools.     These tools are documented here: 

 https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-160 

 and can be downloaded from here: 

 https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019 

 h3. Install Python and Numpy you want to compile numextension for 

 * You may install multiple versions of python, then use the "py" launcher to select which one to use 
 * Download and install Python:    https://www.python.org/downloads/windows/ 
 ** In the optional installation features, it is recommended to select installing "py launcher" so you can easily select which python version to run on the command line 
 * Use pip on the command line standard Windows installer to install numpy, your Python version, then use specific pip for version of python you are installing in (eg. pip3.8, pip3.9, etc) 
 ** As of 2020-11-29, there is a bug in Win 10 (update 2004) that prevents some versions of numpy to work correctly. The bug and workaround is detailed here:    https://developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html 
 ** Workaround is to install older version 1.19.3 version of numpy instead of 1.19.4: 
 *** pip3.8 uninstall numpy     (if you already have numpy installed) 
 *** pip3.8 install numpy==1.19.3 numpy/scipy. 

 h3. Compile numextension in This is a VS native tools command prompt: 

 * Search and launch this from start menu:      "x64 Native Tools Command Prompt for VS 2019" 
 * cd to the numextension directory 
 * compile and build a windows installer for your specific Python version. 
 ** py -3.8 setup.py bdist_wininst 
 * The new windows installer will be found in the numextension/dist folder work-in-progress, please stand by...