Python matplotlib import dll erreur lors de son lancement à partir de JMPJ'ai un script python qui importe pyplot de matplotlib. Lorsque j'exécute ce script python dans n'importe quelle situation en dehors de JMP (à partir de Spyder IDE ou simplement via la ligne de commande Windows), il fonctionne parfaitement. Mais lorsque je le lance à l'aide de la fonctionnalité Run Program de JMP, ou même simplement avec OPEN, il y a une erreur d'importation (voir ci-dessous).
J'ai limité l'erreur d'importation en haut de ft2font à partir de matplotlib et je peux la répliquer à partir de JMP:
Names Default To Here( 1 );
RP = RunProgram(
Executable( "python.exe" ),
Options( {"-c \!"from matplotlib import ft2font\!""} ),
ReadFunction( Function( {this}, Write( this << read ) ) )
);
et voici l'erreur:
RunProgram( /*object*/ )Traceback (most recent call last):
File "", line 1, in
ImportError: DLL load failed: The specified procedure could not be found.
Encore une fois, si j'ouvre une invite de commande et lance python.exe -c "à partir de matplotlib import ft2font", je n'obtiens aucune erreur. Que se passe-t-il avec JMP en train de gâcher les importations de paquets python? Il y a un problème très similaire ( vois ici ) que certains utilisateurs de matplotlib ont en général avec les importations dans font_manager.py mais que ces personnes ne peuvent pas l’utiliser du tout dans n'importe quelle situation, pour moi c’est uniquement lorsqu’il appelle depuis JMP.
Re: erreur matplotlib import dll lors de son lancement à partir de JMPOK, j'ai résolu celui-ci et c'est la faute de JMP.
Il y a un fichier zlib.dll dans l'installation de JMP et, puisque JMP s'ajoute à PATH avant de lancer les commandes Windows, python a découvert que zlib.dll avant de trouver le fichier zlib.dll situé à l'emplacement C: \ Anaconda3 \ Library \ bin \ zlib. .dll même si vous avez d'abord changé de répertoire via un fichier batch.
J'ai dû créer un fichier de commandes qui modifie d'abord le répertoire en dehors de JMP (où la fenêtre cmd démarre), supprime JMP du chemin en utilisant la commande set, puis lance mon script python comme indiqué ci-dessous.
cd c:\
set PATH=%PATH:C:\Program Files\SAS\JMPPRO\14;=%
pythonw.exe "my_gui_app.py"
Mon application python est maintenant lancée à partir d'un bouton JMP à l'aide de la commande jsl Run Program appelant le fichier de traitement par lots.
Re: erreur matplotlib import dll lors de son lancement à partir de JMPHmm. Je ne suis pas sûr de ce que cela pourrait être alors. Cependant, j'exécute une installation Python vanille et non une distribution Anaconda.
ver = "Python 3.6.4";
Re: erreur matplotlib import dll lors de son lancement à partir de JMPÀ la fois en JMP avec le code que vous avez fourni et en ligne de commande, je reçois la même version:
ver = "Python 3.6.6 :: Anaconda custom (64-bit)";
Re: erreur matplotlib import dll lors de son lancement à partir de JMPQuelle version de python utilisez-vous?
Je reçois ce message d'erreur lors de l'exécution du script avec Python 2.7 mais pas avec Python 3.6. J'ai le même comportement dans les deux versions, en JMP et en ligne de commande.
Si vous avez plusieurs installations python, vous pouvez utiliser le script ci-dessous pour vérifier la version utilisée par JMP. S'il n'utilise pas la version attendue, vous devrez peut-être fournir le chemin d'accès complet à l'exécutable python.
ver = Trim(
Run Program(
Executable( "python.exe" ),
Options( "--version" ),
Read Function( "text" )
)
);
Show( ver );