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

Langage Perl Discussion :

gérer les espaces dans les noms de répertoire


Sujet :

Langage Perl

  1. #1
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut gérer les espaces dans les noms de répertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	my $factory = Bio::Tools::Run::StandAloneBlast->new(@params);
    	$factory->executable('blastall', 'C:/Program Files/BLAST/bin/blastall.exe');
    	$factory->outfile($fs_blast);

    'C:/Program' n'est pas reconnu en tant que commande interne
    ou externe, un programme ex‚cutable ou un fichier de commandes.

    ------------- EXCEPTION -------------
    MSG: blastall call crashed: 256 | No such file or directory | C:/Program Files/BLAST/bin/blastall.exe -d "P:/Theorie/Cathy/Myco_pyro/Blast_DB_26/Jazzy_BlastDB_26" -i C:\Users\minguet.TMA\AppData\Local\Temp\WoFOhL5Wn5 -p blastn -o P:/Theorie/Cathy/Myco_pyro/ITG/tests/102_G1.blast

    STACK Bio::Tools::Run::StandAloneNCBIBlast::_runblast C:/Perl64/site/lib/Bio\Tools\Run\StandAloneNCBIBlast.pm:437
    STACK Bio::Tools::Run::StandAloneNCBIBlast::_generic_local_blast C:/Perl64/site/lib/Bio\Tools\Run\StandAloneNCBIBlast.pm:411
    STACK Bio::Tools::Run::StandAloneNCBIBlast::blastall C:/Perl64/site/lib/Bio\Tools\Run\StandAloneNCBIBlast.pm:263
    STACK main::blast Jazzy.pl:747
    STACK toplevel Jazzy.pl:581
    -------------------------------------


    ... ça doit être un problème dû à l'espace dans mon nom de répertoire ... comment faire?


    Sous windows 7, faut-il utiliser des slash ou des backslash pour indiquer les chemins des vers les fichiers à Perl?

    Merci.
    -- Jasmine --

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    J'ai essayé avec des doubles quotes, cela ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $factory->executable('blastall', '"C:/Program Files/BLAST/bin/blastall.exe"');
    $factory->executable('blastall', 'C:/"Program Files"/BLAST/bin/blastall.exe');
    -- Jasmine --

  3. #3
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $factory->executable('blastall', 'C:\Program Files\BLAST\bin\blastall.exe');

  4. #4
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Ca ne fonctionne pas C'est la première chose que j'ai essayé et j'obtiens l'erreur du premier message de la discussion
    -- Jasmine --

  5. #5
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Jasmine80, tu devrais toujours lire la documentation du module
    Title : executable
    Usage : my $exe = $blastfactory->executable('blastall');
    Function: Finds the full path to the executable
    Returns : string representing the full path to the exe
    Args : [optional] name of executable to set path to
    [optional] boolean flag whether or not warn when exe is not found
    Il ne prend pas en argument le chemin du path.

  6. #6
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Dans ton programme, soit tu fais un chdir pour te mettre à l'intérieur du répertoire C:\Program Files\BLAST\bin, soit tu la rajoute dans ton path directement dans ton programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ENV{PATH} .= 'C:\Program Files\BLAST\bin';

  7. #7
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Merci Djibril

    Citation Envoyé par djibril Voir le message
    Jasmine80, tu devrais toujours lire la documentation du module


    Il ne prend pas en argument le chemin du path.


    ça fonctionnait sur mon ancien PC ... ça devait être du code inutile ... et oui, sur l'ancien, j'avais probablement modifié $ENV{PATH}



    en ajoutant en début de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ENV{PATH} .= 'C:\Program Files\BLAST\bin';
    et en modifiant ma ligne pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $factory->executable('blastall');
    J'obtiens l'erreur :
    MSG: cannot find path to blastall

    c'est compliqué, je suis nulle sur ce coup




    ... j'ai aussi toujours le message :
    Replacement list is longer than search list at C:/Perl64/site/lib/Bio/Range.pm line 251.
    As-tu une idée de sa signification?


    Merci beaucoup
    -- Jasmine --

  8. #8
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    C'est bien un problème d'espace ... la doc semble pourrie


    Si je change Blast de répertoire, afin qu'il n'y ait aucun espace, cela fonctionne parfaitement avec la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $factory->executable('blastall', 'C:/BLAST/bin/blastall.exe');

    ... sans changer $ENV{PATH}


    ... ça fonctionne mais ça me force à changer BLAST de répertoire afin d'éviter les espaces dans le chemin, je contourne le problème

    D'où, j'en reviens à ma question initiale, comment permettre un espace dans le chemin en Perl?



    Et ... j'ai aussi toujours le message (qui ne semble pas géner) :
    Replacement list is longer than search list at C:/Perl64/site/lib/Bio/Range.pm line 251.
    As-tu une idée de sa signification?


    Merci
    -- Jasmine --

  9. #9
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Le problème ne vient pas de Perl, mais du module qui ne gère pas correctement les chemins avec espaces.
    Donc soit, tu changes l'emplacement, soit utilise chdir ou $ENV.

    Voilà !

  10. #10
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Ok, merci, je vais garder le changement de répertoire. Bonne journée.
    -- Jasmine --

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 22/04/2009, 16h43
  2. gérer un espace dans le nom d'un répertoire ?
    Par krislec dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 30/05/2008, 11h36
  3. Gérer les espaces dans les liens
    Par piotrr dans le forum Langage
    Réponses: 5
    Dernier message: 07/02/2008, 21h44
  4. Comment traiter les espaces dans le nom du fichier
    Par maban dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/08/2007, 20h25
  5. Prendre en compte les espaces dans les filtres
    Par Ekinoks dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 03/11/2006, 02h57

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