Python matplotlib import dll error when launch from JMPHo uno script python che importa pyplot da matplotlib. Quando eseguo questo script Python in qualsiasi situazione esterna a JMP (dall'interno di Spyder IDE o semplicemente tramite la riga di comando di Windows), funziona perfettamente. Ma quando lo lancio usando la funzionalità Run Program di JMP, o anche solo con OPEN, ha un errore di importazione (vedi sotto).
Ho ristretto l'errore di importazione in basso ft2font da matplotlib e posso replicarlo da dentro JMP:
Names Default To Here( 1 );
RP = RunProgram(
Executable( "python.exe" ),
Options( {"-c \!"from matplotlib import ft2font\!""} ),
ReadFunction( Function( {this}, Write( this << read ) ) )
);
e qui c'è l'errore:
RunProgram( /*object*/ )Traceback (most recent call last):
File "", line 1, in
ImportError: DLL load failed: The specified procedure could not be found.
ancora, se apro un prompt dei comandi ed eseguo python.exe -c "da matplotlib import ft2font", non ottengo alcun errore. Cosa succede con JMP che incasina le importazioni dei pacchetti python? C'è un problema molto simile ( Vedere qui ) che alcuni utenti di matplotlib hanno in generale le importazioni in font_manager.py ma queste persone non possono usarlo affatto in nessuna situazione, per me è solo quando si chiama da dentro JMP.
Re: Python matplotlib import dll error when launch from JMPOK, ho risolto questo ed è colpa di JMP.
C'è un zlib.dll che vive all'interno dell'installazione di JMP e dal momento che JMP si aggiunge al PATH prima di lanciare i comandi di Windows, python stava trovando quel file zlib.dll prima di trovare lo zlib.dll che vive in C: \ Anaconda3 \ Library \ bin \ zlib .dll anche se hai cambiato prima la directory tramite un file batch.
Ho dovuto creare un file batch che prima cambia directory al di fuori di JMP (dove inizia la finestra di cmd), rimuove JMP dal percorso usando il comando set, quindi avvia il mio script python come sotto
cd c:\
set PATH=%PATH:C:\Program Files\SAS\JMPPRO\14;=%
pythonw.exe "my_gui_app.py"
La mia app Python ora si avvia da un pulsante JMP usando il comando jsl Run Program che chiama il file batch.
Re: Python matplotlib import dll error when launch from JMPHmm. Non sono sicuro di cosa potrebbe essere allora. Tuttavia, sto eseguendo un'installazione di Python vanilla e non una distribuzione di Anaconda.
ver = "Python 3.6.4";
Re: Python matplotlib import dll error when launch from JMPSia in JMP con il codice che hai fornito sia nella riga di comando, sto ottenendo la stessa versione:
ver = "Python 3.6.6 :: Anaconda custom (64-bit)";
Re: Python matplotlib import dll error when launch from JMPQuale versione di Python stai usando?
Ottengo quel messaggio di errore quando eseguo lo script con Python 2.7 ma non con Python 3.6. Ottengo lo stesso comportamento in entrambe le versioni, in JMP e nella riga di comando.
Se si dispone di più installazioni python, è possibile utilizzare lo script seguente per verificare la versione utilizzata da JMP. Se non sta utilizzando la versione prevista, potrebbe essere necessario fornire il percorso completo all'eseguibile python.
ver = Trim(
Run Program(
Executable( "python.exe" ),
Options( "--version" ),
Read Function( "text" )
)
);
Show( ver );