2
votes

Comment configurer Apama avec la prise en charge du plugin Python

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


1 commentaires

pourriez-vous accepter une réponse pls :)


5 Réponses :


1
votes

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.


0 commentaires

3
votes

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.


3 commentaires

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/



1
votes

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


0 commentaires

2
votes

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/


2 commentaires

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)



1
votes

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'.


0 commentaires