Como instalar o Pythonika no Ubuntu?

1

Tentei instalar o Pythonika no meu Ubuntu 14.04 (64) com o python 2.7.6. Eu segui a resposta de Salem, mas existem alguns erros.

O Makefile.linux

# Set the paths according to your MathLink Developer Kit location.
# (The paths should not contain whitespaces)

MATHEMATICA_INSTALL_DIR = /usr/local/Wolfram/Mathematica/10.0
MLINKDIR = ${MATHEMATICA_INSTALL_DIR}/SystemFiles/Links/MathLink/DeveloperKit

SYS = Linux-x86-64
CADDSDIR = ${MLINKDIR}/${SYS}/CompilerAdditions

INCDIR = ${CADDSDIR}
LIBDIR = ${CADDSDIR}

MPREP = "${CADDSDIR}/mprep"
MCC = "${CADDSDIR}/mcc"

# Modify the following for Python versions other than 2.6
PYTHON_VERSION_MAJOR = 2
PYTHON_VERSION_MINOR = 7


# Path to the Python includes (modify according to Python version)
#
PYTHONINC = /usr/include/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/


PYTHONIKA = Pythonika
INCLUDES = -I${INCDIR} -I${PYTHONINC}

# libstdc++ and librt are, apparently, needed for correct compilation under Linux
# with libMLi3 statically linked
#
##     Ununtu 14.04 
LIBS = -L${LIBDIR} ${LIBDIR}/libML64i3.a -lstdc++ -lpthread -lm -lrt -    lpython${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}


all : Pythonika

Pythonika: ${PYTHONIKA}.o ${PYTHONIKA}tm.o
${CC} ${INCLUDES} ${PYTHONIKA}.o ${PYTHONIKA}tm.o ${LIBS} -o ${PYTHONIKA}

${PYTHONIKA}tm.o: ${PYTHONIKA}.tm
${MPREP} ${PYTHONIKA}.tm -o ${PYTHONIKA}tm.c
${CC} -c ${PYTHONIKA}tm.c ${INCLUDES}

${PYTHONIKA}.o: ${PYTHONIKA}.c
${CC} -c ${PYTHONIKA}.c ${INCLUDES}

clean :
rm -f ${PYTHONIKA}tm.* ${PYTHONIKA}.o ${PYTHONIKA}

O erro é

cc -I/usr/local/Wolfram/Mathematica/10.0/SystemFiles/Links/MathLink/DeveloperKit/Linux-x86-64/CompilerAdditions -I/usr/include/python2.7/ Pythonika.o Pythonikatm.o -L/usr/local/Wolfram/Mathematica/10.0/SystemFiles/Links/MathLink/DeveloperKit/Linux-x86-64/CompilerAdditions        /usr/local/Wolfram/Mathematica/10.0/SystemFiles/Links/MathLink/DeveloperKit/Linux-x86-64/CompilerAdditions/libML64i3.a -lstdc++ -lpthread -lm -lrt -lpython2.7 -o Pythonika
Pythonikatm.o: In function 'MLAnswer':
Pythonikatm.c:(.text+0xba8): undefined reference to 'MLWaitForLinkActivity'
/usr/local/Wolfram/Mathematica/10.0/SystemFiles/Links/MathLink/DeveloperKit/Linux-x86-64/CompilerAdditions/libML64i3.a(mluuid.cpp.o): In function 'MathLink::MLUUID::stringRepresentation() const':
mluuid.cpp:(.text+0x7e): undefined reference to 'uuid_unparse_upper'
/usr/local/Wolfram/Mathematica/10.0/SystemFiles/Links/MathLink/DeveloperKit/Linux-x86-64/CompilerAdditions/libML64i3.a(mluuid.cpp.o): In function 'MathLink::MLUUID::operator=(std::basic_string<char, std::char_traits<char>, MathLink::MLStdAllocator<char> > const&)':
mluuid.cpp:(.text+0xd4): undefined reference to 'uuid_parse'
/usr/local/Wolfram/Mathematica/10.0/SystemFiles/Links/MathLink/DeveloperKit/Linux-x86-64/CompilerAdditions/libML64i3.a(mluuid.cpp.o): In function 'MathLink::MLUUID::MLUUID(std::basic_string<char, std::char_traits<char>, MathLink::MLStdAllocator<char> > const&)':
mluuid.cpp:(.text+0x17b): undefined reference to 'uuid_parse'
/usr/local/Wolfram/Mathematica/10.0/SystemFiles/Links/MathLink/DeveloperKit/Linux-x86-64/CompilerAdditions/libML64i3.a(mluuid.cpp.o): In function 'MathLink::MLUUID::MLUUID()':
mluuid.cpp:(.text+0x227): undefined reference to 'uuid_generate'
collect2: error: ld returned 1 exit status
make: *** [Pythonika] Error 1
    
por Eden Harder 27.09.2013 / 14:33

2 respostas

1

Nenhuma das versões compiladas disponíveis corresponde ao seu sistema operacional / arco, portanto, você precisará compilá-la por conta própria. Grosso modo, você precisa seguir estas etapas:

  • Instale as ferramentas de construção

    $ sudo apt-get install build-essential subversion python-dev
    
  • Obtenha o código-fonte:

    $ svn checkout http://pythonika.googlecode.com/svn/trunk/ pythonika-src
    $ cd pythonika-src
    
  • Edite o arquivo Makefile.linux e verifique se o caminho em MATHEMATICA_INSTALL_DIR está correto. Além disso, você precisará alterar PYTHON_VERSION_MINOR para "7" (se você estiver usando a versão do Python instalada por padrão).

  • Compile

    $ make -f Makefile.linux
    

Se tudo correr bem, você deve ter um arquivo chamado Pythonika dentro dessa pasta. Se você receber algum erro, atualize sua pergunta com os erros recebidos.

    
por Salem 06.10.2013 / 13:12
0

Você precisa instalar o pacote uuid-dev . Você pode fazer isso executando este comando no Terminal (para iniciar o Terminal do CRTL + ALT + T ):

sudo apt-get install uuid-dev

E diga no arquivo Makefile.linux que você precisa da biblioteca libuuid.so . Para fazer isso, edite o arquivo e adicione -luuid à linha:

  

LIBS = -L $ {LIBDIR} $ {LIBDIR} /libML64i3.a -lstdc ++ -lpthread -lm -lrt   -lpython $ {PYTHON_VERSION_MAJOR}. $ {PYTHON_VERSION_MINOR}

Então você deve ter algo assim:

  

LIBS = -L $ {LIBDIR} $ {LIBDIR} /libML64i3.a -lstdc ++ -luuid -lpthread -lm   -lrt -lpython $ {PYTHON_VERSION_MAJOR}. $ {PYTHON_VERSION_MINOR}

Isso é tudo.

    
por Joseba Makazaga 06.02.2015 / 11:41