J'essaye d'utiliser des plugins Python dans Apama. Malheureusement, je reçois toujours le message d'erreur suivant lors du démarrage du corrélateur.
Échec de l'initialisation du corrélateur: impossible d'initialiser le Python brancher. Définissez AP_PYTHONHOME sur l'emplacement de python
Si je le teste localement, l'application fonctionnera correctement. Mais dès que je passe au système de production et que j'essaye d'appeler l'application Python via le fichier .mon
, cette erreur se produit.
Quelqu'un peut-il me dire pourquoi il ne peut pas initialiser Python?
Apama est configuré et a commencé à utiliser la commande suivante.
2019-01-31 13:39:27.479 ##### [140402990063488] - There are 2 CPU(s) 2019-01-31 13:39:27.479 ##### [140402990063488] - Correlator command line: ./correlator --config /opt/apama-rules/deploy --applicationLogLevel DEBUG -l /usr/apama/properties/apama/license/ApamaServerLicense.xml 2019-01-31 13:39:27.479 ##### [140402990063488] - Current Working Directory: /opt/Apama/bin 2019-01-31 13:39:27.479 ##### [140402990063488] - PATH: /opt/Apama/bin:/jre/bin:/bin:/jre/../bin:/sbin:/usr/sbin:/bin:/usr/bin 2019-01-31 13:39:27.479 ##### [140402990063488] - LD_LIBRARY_PATH: /opt/apama-rules/deploy/lib:/apamawork_10.3/lib:/opt/Apama/lib:/jre/lib/amd64/server:/jre/lib/amd64 2019-01-31 13:39:27.480 ##### [140402990063488] - Current UTC time: 2019-01-31 12:39:27, local timezone: TZ not set so using system default 2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - port = 15903 2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - output queue size = 10000 2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - output queue batch size = 100 2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - output queue mode = blocking 2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable = APAMA_PLATFORM=amd64-rhel7 2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable = AP_PYTHONHOME=/opt/Apama/third_party/python/lib/python3.6/site-packages 2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable = APAMA_LIBRARY_VERSION=10.3 2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable = APAMA_JRE=/jre 2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable = APAMA_ENVSET=10.3:/opt/Apama:amd64-rhel7 2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable = APAMA_WORK=/apamawork_10.3 2019-01-31 13:39:27.480 ##### [140402990063488] - Input value - environment variable = APAMA_HOME=/opt/Apama 2019-01-31 13:39:27.480 ##### [140402990063488] - Using memory allocator = TBB scalable allocator [...] 2019-01-31 13:39:27.717 ERROR [140402990063488] - Failed to initialize correlator: Could not initialise the Python plugin. Set AP_PYTHONHOME to the location of python
/correlator --config /opt/apama-rules/deploy --applicationLogLevel DEBUG -l /usr/apama/properties/apama/license/icense.xml
5 Réponses :
Assurez-vous d'exporter la variable d'environnement AP_PYTHONHOME = / chemin de python /. Un exemple,
export AP_PYTHONHOME = / usr / local / python / 3.6.6
doit être défini dans votre profil bash. AP_PYTHONHOME est le répertoire parent donné via l'option --prefix lors de l'installation de python.
Pour que le corrélateur trouve la bibliothèque python à charger, la variable d'environnement AP_PYTHONHOME doit être définie sur l'emplacement de python et non sur l'emplacement des packages de site python. Essayez de définir AP_PYTHONHOME sur / opt / Apama / third_party / python (en supposant que c'est là que votre python est réellement installé). Je noterai qu'il est utile d'avoir les packages de site python sur votre PYTHONPATH.
Merci pour votre rediffusion. Je l'ai changé en / opt / Apama / third_party / python mais j'obtiens la même erreur.
@Hack: Pouvez-vous décrire comment vous démarrez le corrélateur dans ce cas? Le corrélateur doit être démarré à partir d'une invite de commande où le fichier Apama / bin / apama_env a été extrait ( source / opt / Apama / bin / apama_env ) et cet environnement ne doit pas définir la variable AP_PYTHONHOME lorsque vous utilisent l'installation. Je noterai qu'il n'est pas recommandé d'exécuter le corrélateur à partir du répertoire bin de l'installation car cela polluera potentiellement l'installation avec des fichiers d'exécution.
@Hack: Je vois votre autre réponse que vous avez été victime de python contre python3. Dans l'environnement Apama sous Linux, utilisez python3 pour appeler l'interpréteur python et il exécutera l'interpréteur python3 inclus avec Apama sous le répertoire $ APAMA_HOME / third_party / python. Voir https://www.python.org/dev/peps/pep-0394/
En regardant les variables d'environnement, vous avez: AP_PYTHONHOME = / opt / Apama / third_party / python / lib / python3.6 / site-packages
Je serais surpris que ce soit le bon répertoire: je pense que vous voulez AP_PYTHONHOME = / opt / Apama / third_party / python
Il y a eu d'autres bonnes réponses (cela ne me permettra pas d'ajouter un commentaire) - mais je noterai que si vous avez une installation complète (communauté ou autre) ou une image docker, vous ne devriez pas avoir besoin pour définir AP_PYTHONHOME du tout. Lorsque Python est localisé dans l'installation d'Apama, il le sera automatiquement.
Si vous utilisez une installation principale, vous devrez fournir votre propre installation Python et pointer AP_PYTHONHOME vers elle. La documentation à ce sujet peut être trouvée dans ce billet de blog: http://www.apamacommunity.com/using-python-plug-ins-with-the-apama-core-installation/
Merci pour votre rediffusion. Ok, j'ai découvert que les variables d'environnement sont chargées lors du démarrage du service. Ce qui suit sera fait: PYTHONPATH = "$ PYTHONPATH: $ APAMA_HOME / third_party / python / lib / p ython3.6 / site-packag es" [...] epxort PYTHONPATH [...] print:: / opt /softwareag/Apama/third_party/python/lib/python3.6/site -packages On dirait que le script shell n'est pas autorisé à appeler les variables d'environnement?
Hmm, désolé, j'ai manqué votre question de suivi. Je ne suis pas sûr à 100% de votre problème. Notez que nous parlions de AP_PYTHONHOME et non de PYTHONPATH. Une chose que vous ne donnez pas, c'est comment vous avez installé Apama. Aussi: exécutez-vous dans une invite de commande Apama (après avoir exécuté la source Apama / bin / apama_env)
Ok, le problème était que la version par défaut de python était liée à 2.7 J'ai changé la version en version 3. alias python = '/ usr / bin / python3'.
pourriez-vous accepter une réponse pls :)