2014-11-24 9 views
5

Sto incorporando python in un'applicazione C. Ho scaricato il dist python standard e l'ho messo relativo al programma e l'ho usato per collegare & all'applicazione C.Embedding Python: nessun modulo denominato site

Questo funziona perfettamente sulla mia macchina di sviluppo e l'applicazione funziona contro questa versione di Python.

Quando ho impacchettare l'applicazione e la distro pitone e distribuirlo, Im ottenendo il seguente errore:

ImportError: No module named site 

Questo può essere risolto impostando PYTHONHOME per il percorso di questa distribuzione python 'locale', ma Non voglio scherzare con nessuna installazione python che l'utente potrebbe già avere, quindi preferisco non impostare questa variabile.

Qualche idea su come raggruppare correttamente l'interprete python & lib senza interferire con eventuali versioni di python che potrebbero già essere su una macchina di destinazione?

+0

possibile duplicato di [python ImportError Nessun modulo denominato] (http://stackoverflow.com/questions/338768/python-importerror-no-module-named) –

+1

No, 1: questo è specifico per l'incorporamento e per il sito .py che è la libreria standard (cioè molto diversa da non trovare qualche modulo di terze parti), la domanda a cui ti sei collegato non lo è. 2: Ho dichiarato esplicitamente che non volevo rovinare PYTHONHOME. – jramm

+3

Seriamente, a volte mi chiedo se alcune persone non leggono nemmeno la domanda e il duplicato che indicano ... Proprio come sfogliare l'intestazione a breve, "c'è una parola identica nell'intestazione -> questo deve essere un duplicato". Questi non sono nemmeno vicini ad essere simili ... -.- (e una bandiera spesso rende le persone che seguono solo per essere d'accordo senza avere un altro sguardo ravvicinato sia alla domanda che al duplicato contrassegnato -> quindi specialmente il primo segnalatore dovrebbe occuparsi di cosa sta facendo...) – mozzbozz

risposta

3

Basta aggiungere

Py_SetPythonHome(pathToPython); 

prima Py_Initialize chiamata. pathToPython dovrebbe essere il percorso della distribuzione python, per Windows è la cartella che contiene le cartelle Lib e DLLs.

Problemi correlati