[[labs.beatcraft.com]]~ [[OS X]]~ #Contents * Installing gmpy on Mac OS X [#qa0993fb] ** About gmpy [#s5593703] > gmpy is a Python extension module, which enables Python to use GMP. To install gmpy, pip is used.~ Searching for gmpy by pip, several kinds of gmpy are found. Their names and descriptions are shown below.~ $ pip search gmpy gmpy2 - GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x gmpy - GMP or MPIR interface to Python 2.4+ and 3.x gmpy_cffi - GMP CFFI wrapper > For the details of gmpy, please visit the URLs below.~ For gmpy [[https://code.google.com/p/gmpy/]]~ For gmpy2 [[https://pypi.python.org/pypi/gmpy2]]~ ~ The development of gmpy has been shifted from gmpy to gmpy2. If you are looking for the newest development of gmpy in general, please visit [[the site for gmpy2>https://pypi.python.org/pypi/gmpy2]]. To install pip on OS X, please look at [[this page>https://pip.pypa.io/en/latest/installing.html]].~ The development of gmpy has been shifted from gmpy to gmpy2. If you are looking for the newest development of gmpy in general, please visit [[the site for gmpy2>https://pypi.python.org/pypi/gmpy2]].~ ~ According to the webpage of GMPY, GMPY and GMPY2 are Python expansion modules, which support the fast multiple precision arithmetic. GMPY only supports the GMP library and provides fast multiple-precision integer and rational arithmetic. The limited mpf type from GMP is also supported. GHGMPY is no longer being maintained. On the other hand, GMPY2 supports the GMP library for integer and rational arithmetic but GMPY2 adds support for multiple-precision real and complex arithmetic as provided by the MPFR and MPC libraries. GMPY2 is being actively developed.~ ** Installing gmpy on Mac OS X [#rfe80ddf] > In this article, since both MPFR and MPC are already installed on Mac, gmpy2 is going to be installed instead of gmpy.~ This article also uses Mac OS X Mavericks 10.9.3.~ To install gmpy2, [[pip>https://pypi.python.org/pypi/pip]] is used rather than homebrew.~ To install gmpy2, [[pip>https://pypi.python.org/pypi/pip]] is used rather than homebrew. To install pip on OS X, please look at [[this page>https://pip.pypa.io/en/latest/installing.html]].~ $ sudo pip install gmpy2 Password: Downloading/unpacking gmpy2 Downloading gmpy2-2.0.3.zip (279kB): 279kB downloaded Running setup.py (path:/private/tmp/pip_build_root/gmpy2/setup.py) egg_info for package gmpy2 Installing collected packages: gmpy2 Running setup.py install for gmpy2 building 'gmpy2' extension cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv \ -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes \ -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe -DWITHMPFR -DWITHMPC -I./src -I/usr/local/include \ -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/gmpy2.c -o build/temp.macosx-10.9-intel-2.7/src/gmpy2.o In file included from src/gmpy2.c:508: ./src/gmpy_mpz_prp.c:1043:33: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32] for (j = mpz_sizeinbase(s,2)-1; j >= 1; j--) { ~ ~~~~~~~~~~~~~~~~~~~^~ In file included from src/gmpy2.c:519: ./src/gmpy_mpz.c:1915:5: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32] PARSE_ONE_MPZ_OPT_CLONG(&reps, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/gmpy_args.h:123:20: note: expanded from macro 'PARSE_ONE_MPZ_OPT_CLONG' *var = clong_From_Integer(PyTuple_GET_ITEM(args, 0)); \ ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from src/gmpy2.c:519: ./src/gmpy_mpz.c:1915:5: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32] PARSE_ONE_MPZ_OPT_CLONG(&reps, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./src/gmpy_args.h:137:20: note: expanded from macro 'PARSE_ONE_MPZ_OPT_CLONG' *var = clong_From_Integer(PyTuple_GET_ITEM(args, 1)); \ ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 warnings generated. In file included from src/gmpy2.c:480: ./src/mpz_pylong.c:55:10: warning: shift count >= width of type [-Wshift-count-overflow] if ((x >> 32) != 0) { x >>= 32; cnt += 32; } ^ ~~ ./src/mpz_pylong.c:55:27: warning: shift count >= width of type [-Wshift-count-overflow] if ((x >> 32) != 0) { x >>= 32; cnt += 32; } ^ ~~ 2 warnings generated. cc -bundle -undefined dynamic_lookup -arch x86_64 -arch i386 -Wl,-F. build/temp.macosx-10.9-intel-2.7/src/gmpy2.o \ -L/usr/local/lib -L/usr/local/lib -lgmp -lmpfr -lmpc -o build/lib.macosx-10.9-intel-2.7/gmpy2.so ld: warning: ignoring file /usr/local/lib/libgmp.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libgmp.dylib ld: warning: ignoring file /usr/local/lib/libmpfr.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libmpfr.dylib ld: warning: ignoring file /usr/local/lib/libmpc.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libmpc.dylib Successfully installed gmpy2 Cleaning up... > During the installation process, several warnings will appear. However, please ignore them. Regardless of these warnings, usually, the installation process will succeed.~ ~ To check whether gmpy2 is installed correctly or not, try execute a sample program. For instance, try execute gmpy2 and mpfr. $ python Python 2.7.5 (default, Mar 9 2014, 22:15:05) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import gmpy2 >>> gmpy2.mpfr("1.2") mpfr('1.2') >>> gmpy2.sqrt(gmpy2.mpfr("3.2")) mpfr('1.7888543819998317') >>> gmpy2.sin(gmpy2.mpfr(".5")) mpfr('0.47942553860420301') >>> > The details of this sample program are described at [[the page of using gmp2 and mpfr>https://code.google.com/p/gmpy/wiki/UsingGmpy2AndMpfr]]. * Revision History [#vc729c92] > - 2015/01/06 This article is initially uploaded