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

Modules Perl Discussion :

chemin d'un module présent dans @INC mais pas trouvé par un script


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Par défaut chemin d'un module présent dans @INC mais pas trouvé par un script
    Bonjour,

    J'ai un souci un peu bizarre. Je dois reprendre le développement d'un site Web utilisant des CGI etbeaucoup d'autres modules Perl. Pour pouvoir le faire, j'ai commencé par copier le site en local (car il est déjà en production) et par installer sur ma machine tous les modules perl dont il a besoin.

    Mais quand je teste une des pages du site, j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Can't locate GD.pm in @INC (@INC contains: 
    /Library/Perl/Updates/5.8.8/darwin-thread-multi-2level 
    /Library/Perl/Updates/5.8.8 
    /System/Library/Perl/5.8.8/darwin-thread-multi-2level 
    /System/Library/Perl/5.8.8 
    /Library/Perl/5.8.8/darwin-thread-multi-2level 
    /Library/Perl/5.8.8 /Library/Perl 
    /Network/Library/Perl/5.8.8/darwin-thread-multi-2level 
    /Network/Library/Perl/5.8.8 
    /Network/Library/Perl
    /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level 
    /System/Library/Perl/Extras/5.8.8
    /Library/Perl/5.8.6 
    /Library/Perl/5.8.1 .) 
    at /Library/WebServer/CGI-Executables/tree_visualizer.cgi line 11.
    BEGIN failed--compilation aborted at /Library/WebServer/CGI-Executables/tree_visualizer.cgi line 11.
    Ce qui est bizarre, c'est que je viens d'installer le module GP.pm en question. Il se trouve dans le dossier suivant :
    /sw/lib/perl5/5.8.8/darwin-thread-multi-2level/
    il apparait clairement que ce chemin n'est pas dans la variable @INC ci-dessus.
    Sauf que la commande perl -V me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    mathilde@cgmc134:~$ perl -V
    [...]
    %ENV:
        PERL5LIB="/sw/lib/perl5:/sw/lib/perl5/darwin"
      @INC:
        /sw/lib/perl5/5.8.8/darwin-thread-multi-2level
        /sw/lib/perl5/5.8.8
        /sw/lib/perl5/darwin-thread-multi-2level
        /sw/lib/perl5
        /sw/lib/perl5/darwin
        /Library/Perl/Updates/5.8.8/darwin-thread-multi-2level
        /Library/Perl/Updates/5.8.8
        /System/Library/Perl/5.8.8/darwin-thread-multi-2level
        /System/Library/Perl/5.8.8
        /Library/Perl/5.8.8/darwin-thread-multi-2level
        /Library/Perl/5.8.8
        /Library/Perl
        /Network/Library/Perl/5.8.8/darwin-thread-multi-2level
        /Network/Library/Perl/5.8.8
        /Network/Library/Perl
        /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level
        /System/Library/Perl/Extras/5.8.8
        /Library/Perl/5.8.6
        /Library/Perl/5.8.1
        .
    Je comprends pas pourquoi le site ne cherche pas dans tous les dossiers présents dans la variable @INC...

  2. #2
    Membre éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Par défaut
    ce sous-forum n'a pas l'air beaucoup fréquenté

    Personne n'a d'idée pour m'aider??

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Si, mais pas de réponse...
    Essaye de trouver ton module avec Module::Find

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Hum, comment as tu installé ce module ?
    Vu tes messages, tu es sous MAC et tu as sûrement installé ton module avec fink ?
    J'ai l'impression que ton module a uniquement été installé dans le répertoire sw et à disposition de tout le monde. Je me souviens plus sou s Mac, mais es tu sous root?

    Essaye d'installer ton module comme décrit dans mon article ou la FAQ, et dis nous si c'est OK.

    De plus, montre nous le début de ton script avec tous les use, etc.

  5. #5
    Membre éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Par défaut
    en effet, j'ai installer le module avec Fink, et il se trouve dans le répertoire /sw.

    Ce qui est bizarre, c'est que ce répertoire est bien dans le @INC de Perl quand on fait perl -V, mais qu'il n'y est plus quand le script CGI s'exécute.

    Voici le début du script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #!/usr/bin/perl
     
     
    use lib '/sw/lib/perl5';
    use lib '/sw/lib/perl5/darwin';
    use warnings;
    use strict;
    use CGI::Carp qw(fatalsToBrowser);
    use CGI::Fast;
    use CGI qw/:standard :html3/;
    use FCGI;
    use DBI;
    use GD;
    use CSS;
     
    use Bio::Tree::Draw::Cladogram;
    use Bio::Matrix::IO::phylip;
    use Bio::Matrix::MatrixI;
    use Bio::Matrix::PhylipDist;
    use Bio::Matrix::Scoring;
    use Bio::Tree::TreeFunctionsI;
    use Bio::Tree::TreeI;
    use Bio::Tree::NodeI;
    use Bio::TreeIO;
    use Bio::Tree::DistanceFactory;
    use Bio::Tree::RandomFactory;
    use Test::Data qw(Array);
    use PostScript::File;
    use PostScript::Simple;
    use PostScript::Simple::EPS;
    j'ai ajouté les deux premières lignes pour voir, et ça marche comme ça. Cela dit, je ne comprends pas pourquoi le script CGI ne prends pas en compte tous les dossiers qu'il y a dans le @INC.
    pour rappel, voici ce que me donne perl -V :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Built under darwin
      Compiled at Mar 11 2009 16:09:08
      %ENV:
        PERL5LIB="/sw/lib/perl5:/sw/lib/perl5/darwin"
      @INC:
        /sw/lib/perl5/5.8.8/darwin-thread-multi-2level
        /sw/lib/perl5/5.8.8
        /sw/lib/perl5/darwin-thread-multi-2level
        /sw/lib/perl5
        /sw/lib/perl5/darwin
        /Library/Perl/Updates/5.8.8/darwin-thread-multi-2level
        /Library/Perl/Updates/5.8.8
        /System/Library/Perl/5.8.8/darwin-thread-multi-2level
        /System/Library/Perl/5.8.8
        /Library/Perl/5.8.8/darwin-thread-multi-2level
        /Library/Perl/5.8.8
        /Library/Perl
        /Network/Library/Perl/5.8.8/darwin-thread-multi-2level
        /Network/Library/Perl/5.8.8
        /Network/Library/Perl
        /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level
        /System/Library/Perl/Extras/5.8.8
        /Library/Perl/5.8.6
        /Library/Perl/5.8.1
        .
    J'ai l'impression que les dossiers de Fink sont ajouté à @INC grâce à la ligne %ENV. Peut être que le script ne prend pas en compte cette ligne?

    Djibril, tu crois que c'est vraiment nécessaire de réinstaller le module en utilisant cpan? Les deux lignes ajoutées en début de script ne peuvent pas suffir?

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Tu les as installé avec les droits root ? Sinon par curiosité, j'aurais tout de même installé le module via le CPAN pour être sûr. Car ta solution, bien qu'elle fonctionne ne parait pas la plus propre.

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

Discussions similaires

  1. [XL-2003] Valeur cherchée existante mais pas trouvée par la macro
    Par tioch dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/07/2011, 15h35
  2. Réponses: 6
    Dernier message: 14/06/2011, 18h39
  3. Problème de classes définies mais pas trouvées par g++
    Par Michaël dans le forum Autres éditeurs
    Réponses: 10
    Dernier message: 22/07/2007, 18h45
  4. [Cookies] Problème dans IE mais pas dans FF
    Par Manio 54 dans le forum Langage
    Réponses: 19
    Dernier message: 15/12/2005, 18h30
  5. CROSSTAB ::marche dans access mais pas dans MS SQL 2000
    Par anselmeJ dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/11/2005, 07h56

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