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

Déploiement/Installation Python Discussion :

Import de librairies locales


Sujet :

Déploiement/Installation Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 130
    Points : 115
    Points
    115
    Par défaut Import de librairies locales
    Bonjour à tous,

    Je dois distribuer une application python utilisant plusieurs librairies (entre autres cx_Oracle). Je ne souhaite pas installer ces librairies sur la machine cible, aussi je souhaite plutôt les garder en local à mon application, dans un sous-dossier lib, par exemple.
    Est-il possible, en python, de signifier à mon application d'aller chercher certaines librairies dans un autre dossier que le répertoire par défaut ?

    De même, est-il possible de jouer avec les variables d'environnement de la machine cible (toujours pour cx_Oracle, qui a besoin de ORACLE_HOME) au démarrage de l'application ?

    Merci d'avance

    Reeter

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 105
    Points : 145
    Points
    145
    Par défaut
    Bonjour,

    Pour les librairies, c'est la variable PYTHONPATH qui contient les différents chemins où trouver les librairies.

    Au niveau de ton programme Python, tu peux accéder à cette liste via sys.path.
    Il te suffit d'importer le module sys au début de ton programme, ensuite d'utiliser la méthode append pour ajouter le chemin de ton choix et enfin importer ton module.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import sys
    sys.path.append('<chemin_de_la_librairie_cx_Oracle>')
    import cx_Oracle
    Maintenant, il est peut être possible au niveau de la commande import, de spécifier un chemin, mais cela je ne sais pas comment l'écrire.

    Pour ta variable d'environnement, il faudra passer par un script pour démarrer ton application (script batch pour Windows, script shell GNU/Linux).
    Ainsi tu pourras initialiser ta variable d'environnement avant de lancer ton script avec la commande python.

    Salutations.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 130
    Points : 115
    Points
    115
    Par défaut
    Super ça marche, merci.

    Par contre, j'ai aucune moyen de bidouiller une variable d'environnement autre que le Python path sans passer par un script shell ? Python charge les variables d'environnemnet au démarrage, pas à chaque fois qu'il en a besoin ?


    EDIT: C'est bon j'ai trouvé tout seul pourquoi ce que je voulais faire ne marchait pas, je passe en résolu.
    Pour info:
    Je voulais setter LD_LIBRARY_PATH pour que cx_Oracle aille récupérer tout seul l'instant client d'Oracle fonctionne. Ca ne marche pas, sûrement parce que bien que je puisse setter, via os.environ, la variable LD_LIBRARY_PATH, le .so de cx_Oracle n'en est pas notifié (en effet, cette lib est extérieure à l'environnement python, et donc ne récupère pas la modification locale faite par os.environ). Je suis donc obligé:
    - soit de dire au client de se débrouiller pour installer un client Oracle et setter les variable d'environnement qui vont bien
    - soit utiliser le Shell Linux ou Zindoze pour le faire à sa place

    Merci de ta réponse en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Importer une librairie dans un code c++
    Par wikers dans le forum Linux
    Réponses: 6
    Dernier message: 14/08/2009, 00h31
  2. Problème d'importation des librairies j2ee
    Par had35 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 28/08/2006, 12h04
  3. [code::blocks] Problème d'importation de librairie
    Par kei-kun41 dans le forum Code::Blocks
    Réponses: 5
    Dernier message: 27/03/2006, 23h58
  4. [Classpath] probleme import de librairies
    Par logica dans le forum Général Java
    Réponses: 17
    Dernier message: 05/08/2005, 12h41
  5. [Ant Eclipse] Import des librairies dans un build.xml
    Par Alwin dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 17/11/2004, 16h35

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