2011-04-03 3 views
0

Enfin (!) J'ai compilé Boost :: Python et ai obtenu mon projet XCode pour importer un module local. Ce module commence par la ligne from xml.dom import minidom, mais quand il exécute, je me donne cette erreur:Python embarqué charge le module mais ne charge pas les instructions d'importation internes de ce module

Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    File "FeedStore.py", line 1, in <module> 
    from xml.dom import minidom 
ImportError: No module named xml.dom 

Cependant, je sais que je l'ai installé le module Python xml - quand j'ouvre Python à partir de mon invite de commande et tapez from xml.dom import minidom, tout se passe bien. De plus, lorsque j'importe le module, il se comporte comme je l'attendais.

Je pensais que quelque chose n'allait pas avec sys.path, donc j'ai comparé celui que je reçois de l'invite à celui qui est utilisé dans mon module embarqué. La seule différence est que le sys.path embarqué n'inclut pas ''. J'ai essayé de l'ajouter, mais cela n'a pas changé le comportement. J'ai également suspecté que la version intégrée accédait à une version différente de Python que j'utilisais à partir de l'invite, mais sys.prefix correspondait entre les deux exécutions.

Voici le code qui importe mon module et l'exécute. C'est assez simple pour le moment (pas encore de référence pour le moment) car à ce stade, je voudrais juste m'assurer que je pourrai intégrer mon module (je suis un programmeur C++ totalement novice). J'ai probablement mal compris quelque chose d'essentiel à propos de boost :: python. Quelqu'un peut m'aider?

Répondre

1

En dépit d'avoir des valeurs sys.path identiques, appeler PyRun_SimpleString("sys.path.append(\"<<path>>\")"); avec les endroits dont j'avais besoin pour résoudre le problème.

Questions connexes