IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces de programmation Oracle Discussion :

[CX_ORACLE] Variable d'environnement


Sujet :

Interfaces de programmation Oracle

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Par défaut [CX_ORACLE] Variable d'environnement
    Bonjour,

    je solicite votre aide pour une problème qui m'a bouffé pas mal de temps !

    J'ai fait pas mal de recherche, et en restartant mon serveur apache j'ai souvent cru que ça allait marcher, mais visiblement...

    Le contexte : un serveur apache, python et le module cx_Oracle correctement installé, le mod-python d'apache fonctionne correctement (exécution des .py sans problèmes).

    Je précise aussi que python charge bien le module sans problème et que tout fonctionne en CLI ou encore par script, mais dès que je passe par le serveur apache, plus rien :/

    Alors voilà, l'erreur est typique de la variable LD_LIBRARY_PATH non défini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImportError: libclntsh.so.10.1: cannot open shared object file: No such file or directory
    Cette erreur est levé à cette ligne :

    Pourtant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return os.getenv('ORACLE_HOME')+" "+os.getenv('LD_LIBRARY_PATH');
    Me retourne bien
    Citation Envoyé par apache
    /home/oracle/oracle/product/10.2.0/client_1 /home/oracle/oracle/product/10.2.0/client_1/lib
    (je les définis dans la conf d'apache, je me suis aussi amusé à les définir par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    os.environ['ORACLE_HOME']='/home/oracle/oracle/product/10.2.0/client_1'
    os.environ['LD_LIBRARY_PATH']='/home/oracle/oracle/product/10.2.0/client_1/lib'
    )

    Je sais plus trop quoi faire, un petit coup de main serait le bienvenue

    Merci d'avance,

    Jérémy.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Vérifiez que l'environnement du processus Apache lors du démarrage d'Apache est identique à celui de python.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Par défaut
    Bonjour pifor,

    merci de votre réponse.


    Après une (rapide) recherche, j'ai pu voir différentes manières pour mettre en place l'environnement du processus apache :
    • modifier /etc/profile (bien que le fichier de config dise de ne pas éditer ce fichier)
    • rajouter l'export des variables dans le script qui lance apache /etc/init.d/apache2


    Une de ces méthodes peut-elle fonctionner ?

    Mes variables sont définis dans les fichiers de conf d'apache (copie / colle des variables définis dans l'environnement Python), cela n'est pas suffisant pour assurer un même environnement apache / python ?

    Merci pour votre aide.

    Jérémy.

  4. #4
    Membre éclairé Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Je sais que ça peut ressembler à du déterrage, mais je me heurte exactement au même problème.

    Alors vu le peu de réponses, peut-être que le problème est mal formulé, et qu'il faudrait se demander s'il est possible avec cx_Oracle d'exécuter des scripts python autrement que interactivement.

    Lorsque je lance mon script à la main, l'import cx_Oracle se passe correctement
    Lorsque je le fais à partir d'une connexion ssh (donc .bashrc non lu et variables ORACLE_HOME et aurtes non positionnées) ça plante. Il faut donc comme l'a écrit Minority trouver un autre moyen pour les importer.

    Seulement voilà, lorsqu'on utilise getenv/setenv on affecte ces variables pour le processus fils et non le script courant. Donc l'export des variables d'environnement qui devrait faire fonctionner l'import cx_Oracle ne sert à rien.

    Ce qu'il faut, c'est un façon d'affecter ces variables d'env dans le script, et que ça soit interprété pour la suite du processus python qui aura à exécuter import cx_Oracle.

    Si quelqu'un a une idée, ça serait super. Et si mes explications ne sont pas claires, je peux développer d'avantage éventuellement. Merci pour votre aide!

Discussions similaires

  1. [langage] Création de variable d'environnements
    Par Smaugg dans le forum Langage
    Réponses: 20
    Dernier message: 26/04/2004, 09h32
  2. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31
  3. nom de fichier et variables d'environnement
    Par joebarthib dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2002, 15h21
  4. Réponses: 4
    Dernier message: 18/07/2002, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo