2016-05-17 3 views
1

J'ai téléchargé un « custom » pêcheur test exact qui est basé sur la fonction R qui a été à son tour, compilé à partir de C/Fortran (source)Python Importation de fonctions compilées

Le package comprend le fichier principal/fonction (Fisher.py) qui, à son tour, importe des fonctions de fichiers fexact, asa159 et asa205. Le problème est que ces fichiers sont un objet partagé C, c'est-à-dire qu'ils ont une extension .so et que python ne les reconnaît pas lors de l'importation; donner une erreur.

...customlib/fexact.so, 2): no suitable image found. Did find: 
    .../customlib/fexact.so: unknown file type, first eight bytes: 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00 

Vous ne savez pas comment gérer cela.

Fisher.py contient:

import customlib.fexact as f 
    from customlib.fexact import fisher_exact as f_exact 
    from customlib.asa159 import rcont2 
    from customlib.asa205 import enum as rcont 

dossier customlib contient: 1. une __init__ 2. asa159.so 3. asa205.so 4. fexact.so

Répondre

1

Exécutez la recompilation script fourni dans le package. Les bibliothèques sont compilées pour le système utilisé par l'auteur original et ne sont pas portables sur tous les systèmes. Vous devrez peut-être mettre à jour l'appel de f2py pour pointer vers la version correcte pour votre utilisation.

+0

J'ai réussi à le faire. J'ai d'abord dû installer un compilateur gfortran pour exécuter f77 et f90, puis recompiler. Merci néanmoins. Réponse acceptée – dter