2 votos

¿Quantlib con python en mac?

¿Hay alguien que conozca una buena guía para hacer funcionar quantlib para python om mac? He intentado buscar en internet y no he encontrado ninguna buena guía. Necesito utilizar quantlib para un proyecto en python.

Parece que no hay quantlib para python para mac disponible.

Gracias.

0 votos

Estoy seguro de haber visto a Luigi Ballabio presentar su Quantlib en el cuaderno Python. ¿Puedes hacer una búsqueda sobre ello?

4voto

Brad Tutterow Puntos 5628

El proceso de instalación debería ser el mismo que en Linux. Una vez que tenga instalada la biblioteca C++ QuantLib (las instrucciones para ello se encuentran en el sitio de QuantLib, en http://quantlib.org/install/macosx.shtml ) puede descargar la última versión de QuantLib-SWIG, descomprimirla y ejecutarla:

./configure
make -C Python
sudo make -C Python install

Tenga en cuenta que lo anterior funciona con un liberar (es decir, los archivos que se obtienen de https://sourceforge.net/projects/quantlib/files/ ) y, en contra de la creencia popular, no requieren que tenga instalado SWIG.

En cambio, si quiere trabajar a partir de un checkout del repositorio git (ya sea porque quiere modificar las interfaces, o porque quiere una nueva característica que aún no está disponible en una versión) necesitará SWIG-pero no un comando separado, como make se encarga de ello, y también tendrá que ejecutar

./autogen.sh

antes de los otros comandos; esto requerirá que automake y autoconf estén instalados. (Fin de la nota.)

Hay dos o tres advertencias que se me ocurren. La primera es que el ./configure tendrá que invocar quantlib-config para saber qué banderas deben pasarse al compilador y al enlazador (también incluirán los directorios de inclusión adicionales que pueda haber especificado cuando construyó QuantLib, por lo que estará cubierto incluso si tiene, por ejemplo, Boost en un lugar no estándar). Esto significa que quantlib-config debe estar en su camino.

La segunda es que, por desgracia, en este momento make ignora cualquier prefijo que pueda pasar a ./configure y siempre se instala en la ubicación por defecto, lo que requiere el uso de sudo como escribí arriba. Si no tienes derechos de administrador, tendrás que buscar en el Makefile y pasar tu prefijo a setup.py .

La tercera es que necesitarás los archivos de desarrollo de Python ( python.h etc.). Puede que estén disponibles por defecto (y si lo están, make llama a setup.py que debería encontrarlos por ti); pero si no, tendrás que averiguar cómo conseguirlos.

Por último, si usas Docker, puedes sacar una imagen de Ubuntu con una instalación de quantlib-python desde https://hub.docker.com/r/lballabio/quantlib-python/ .

0 votos

Hola, he probado el método usando la última versión de QuantLib-SWIG, usando los comandos que me diste. Sin embargo, al intentar utilizar import QuantLib como ql en python, no funciona. Sigue diciendo "No hay módulo llamado QuantLib".

0 votos

¿Dónde instaló el último comando el módulo? (Debería mostrar la información en pantalla.) Probablemente debes asegurarte de que la ubicación está en tu PYTHONPATH .

0 votos

Actualmente tengo problemas con make -C Python, da un largo error: clang: error: no such file or directory: 'QuantLib/quantlib_wrap.cpp' clang: error: no input files error: command 'cc' failed with exit status 1 make[1]: *** [.build-stamp] Error 1 make: *** [install] Error 2,

1voto

Kyle Cronin Puntos 554

Probablemente la forma más fácil de conseguirlo es a través de MacPorts, que se encargará de las dependencias de Python, etc., por ti. Si aún no lo has hecho, puedes empezar con MacPorts usando estas instrucciones .

Una vez instalado MacPorts, basta con invocar

sudo port install QuantLib

que prácticamente sigue el recomendaciones oficiales de la gente de QuantLib con el punteros correctos de la biblioteca .

0 votos

Sin embargo, esto sólo instala la biblioteca C++. No parece que se incluyan los enlaces de Python.

0 votos

Gracias por la aclaración... supongo que sólo lo había intentado desde R. ¿Hay alguna buena manera de añadir los enlaces al MacPorts Python?

0 votos

No lo sé. No estoy familiarizado con MacPorts.

1voto

Jan P. Puntos 161

Sólo como nota, compilé para QuantLib 1.9 y Python 2.7.12. Instalé QuantLib usando macports, luego pasé mucho tiempo tratando de entender el error de compilación. Haga lo siguiente:

1) Ignora los pasos ./configure y make 2) Vaya directamente a la carpeta Python 3) ejecutar: python setup.py build 4) después de quejarse de la mierda de i386 y x86_64, ejecute lo siguiente (compilar de nuevo)

g++ -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -g -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Library/Frameworks/Python.framework/Versions/2. 7/include/python2.7 -I/opt/local/include -I/opt/local/include -c QuantLib/quantlib_wrap.cpp -o build/temp.macosx-10.6-intel-2.7/QuantLib/quantlib_wrap.o -Wno-unused

5) Enlace de nuevo:

g++ -bundle -undefined dynamic_lookup -arch x86_64 -g build/temp.macosx-10.6-intel-2.7/QuantLib/quantlib_wrap.o -L/opt/local/lib -L/opt/local/lib -lQuantLib -o build/lib.macosx-10.6-intel-2.7/QuantLib/_QuantLib.so

6) NO USE python setup.py install

7) Ejecutar python setup.py test, comprobar si funciona

8) copiar la carpeta QuantLib en build/lib.macosx-10.6-intel-2.7/ a python site-packages (Frameworks/Python.framework/Versions/2.7/lib/Python2.7/site-packages

Pruébalo en el intérprete. Cosas que otros pueden perseguir:

Honestamente, no sé la razón de las dos banderas de arco en el proceso de construcción (-arch i386 -arch x86_64), pero sé que este es el problema para enlazar las librerías. He comprobado todo en el setup.py y en las variables de entorno, no sé dónde está configurado. Además, no sé por qué el sudo python setup.py install no mueve correctamente los archivos.

0voto

Timothy Carter Puntos 7079

Creo que Pensamiento tiene envolturas de Python que tienen un alcance limitado. Asegúrese de tener QuantLib y sus dependencias instaladas:

git clone https://github.com/enthought/pyql.git
cd pyql
python setup.py build
python setup.py test
python setup.py install

De lo contrario, la forma canónica es utilizar el Fijaciones SWIG para OS X .

0 votos

Conozco la biblioteca de Enthought, pero es muy limitada. Es más bien un prototipo.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X