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

R Discussion :

Package required but not available: 'Rcpp'


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 568
    Par défaut Package required but not available: 'Rcpp'
    Bonjour,
    je suis développeur depuis 4 ans mais là je galère vraiment pour réussir à compiler du code C++ sous R alors que c'est juste une erreur d'include de library.
    Voici mon erreur quand je check mon build:
    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
    * using log directory 'C:/Users/Matthieu HERNANDEZ/Desktop/cours M1/TER/projet_Qt/testFour/..Rcheck'
    * using R version 3.2.2 (2015-08-14)
    * using platform: x86_64-w64-mingw32 (64-bit)
    * using session charset: ISO8859-1
    * checking for file './DESCRIPTION' ... OK
    * checking extension type ... Package
    * this is package 'testFour' version '1.0'
    * checking package namespace information ... OK
    * checking package dependencies ... ERROR
    Package required but not available: 'Rcpp'
     
    See section 'The DESCRIPTION file' in the 'Writing R Extensions'
    manual.
    * DONE
    Status: 1 ERROR
    Pourtant j'ai bien installé le pakage Rcpp sous RStudio mais on dirait qu'il ne le trouve pas, cela à l'air de marcher si je change de library du genre FactoMineR.
    Et j'ai bien mit Imports: Rcpp (>= 0.12.3) dans le fichier DESCRIPTION et import(Rcpp) dans le fichier NAMESPACE.
    Je galère là-dessus depuis plus d'une semaine et ça m'embête, surtout que je fais ça dans le cadre de mon master en informatique.
    Pourriez-vous m'aider ?

    Merci d'avance.
    Matthieu

  2. #2
    Membre expérimenté
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Par défaut
    Bonjour,
    Citation Envoyé par Matthieu76 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    # ...
    * checking package dependencies ... ERROR
    Package required but not available: 'Rcpp'
     
    See section 'The DESCRIPTION file' in the 'Writing R Extensions'
    manual.
    * DONE
    Status: 1 ERROR
    [...] Et j'ai bien mit Imports: Rcpp (>= 0.12.3) dans le fichier DESCRIPTION et import(Rcpp) dans le fichier NAMESPACE [...]
    RShowDoc("R-exts"), pp. 104-5 :
    5.4.2 Linking to native routines in other packages
    A package that wishes to make use of header files in other packages needs to declare them as a comma-separated list in the field ‘LinkingTo’ in the DESCRIPTION file. This then arranges that the include directories in the installed linked-to packages are added to the include paths for C and C++ code. It must specify4 ‘Imports’ or ‘Depends’ of those packages, for they have to be loaded5 prior to this one (so the path to their compiled code has been registered).
    _
    4 whether or not ‘LinkingTo’ is used.
    5 so there needs to be a corresponding import or importFrom entry in the NAMESPACE file.
    Selon cet extrait, il vous manque
    • dans DESCRIPTION, le champ LinkingTo: Rcpp ;
    • dans NAMESPACE, une bonne spécification de ce dont vous avez besoin de Rcpp, en l’occurrence importFrom(Rcpp,sourceCpp).


    Ces remarques seront valides seulement si les autres facettes de l'utilisation du C+++ dans un paquet sont bien gérées, notamment :
    • la création sans erreur des fichiers RcppExports.cpp et RcppExports.R ;
    • le cas échéant, une bonne gestion de l'export des membres définis en C++ ;
    • .onUnload, etc.


    Si vous ne l'utilisez déjà, devtools est un outil impeccable pour automatiser ce genre de tâches. Le paquet va bien avec le bouquin de son mainteneur.
    Ici-bas, un exemple d'un paquet écrit à l'arrache à l'aide de devtools.

    Je signale d'emblée que je n'ai pas testé s'il n'y a pas de souci avec Windows : sessionInfo()
    R version 3.2.4 Revised (2016-03-16 r70336)
    Platform: x86_64-redhat-linux-gnu (64-bit)
    Running under: Fedora 23 (Workstation Edition)
    
    locale:
     [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
     [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
     [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
     [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
     [9] LC_ADDRESS=C               LC_TELEPHONE=C            
    [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
    
    attached base packages:
    [1] stats     graphics  grDevices utils     datasets  methods   base
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    ls ./ && printf "\n*****\n\n" && cat DESCRIPTION && printf "\n*****\n\n" && cat NAMESPACE
    DESCRIPTION  LICENSE  man  NAMESPACE  R  src
    
    *****
    
    Package: ExempleCpp
    Title: Call C++ Code From Within R Code
    Version: 1.0-0
    Authors@R: person(
              given = "Foo", family = "Bar", email = "foo.bar@woe.com",
              role = c("aut", "cre"))
    Description: How to easily use C++ Inside R.
    Depends:
        R (>= 2.14)
    License: BSD_3_clause + file LICENSE
    LazyData: true
    Encoding: UTF-8
    Type: Package
    Date: Monday 28 March 2016
    LinkingTo: Rcpp
    Imports:
        Rcpp
    Collate:
        'RcppExports.R'
        'zzz.R'
        'foo.R'
        'packDoc.R'
    RoxygenNote: 5.0.1
    
    *****
    
    # Generated by roxygen2: do not edit by hand
    
    export(makeUsageOfIt)
    export(timesTwo)
    importFrom(Rcpp,sourceCpp)
    useDynLib(ExempleCpp)

    Parmi les fichiers se trouvant dans le répertoire src, le seul que j'ai manuellement édité est times_two.cpp ; il contient ceci :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    ls src/ && printf "\n*****\n\n" && cat src/times_two.cpp
    ExempleCpp.so  RcppExports.cpp  RcppExports.o  times_two.cpp  times_two.o
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //' Multiply a number by two
    //'
    //' This is a simple example of ...
    //'
    //' @param x a single integer
    //'
    //' @export
    //'
    // [[Rcpp::export]]
    NumericVector timesTwo(NumericVector x) {
      return x * 2;
    }

    J'ai mis en attachement le contenu du répertoire R dont le fichier RcppExports.R est généré automatiquement.
    foo.R  packDoc.R  RcppExports.R  zzz.R
    Le contenu du répertoire man est automatiquement généré (idem avec le fichier NAMESPACE comme indiqué dans les sorties plus haut).

    Lorsque cette hiérarchie de fichiers/dossiers est mise en place, check dira quelque chose du genre :
    [...]
    * checking Rd contents ... OK
    * checking for unstated dependencies in examples ... OK
    * checking line endings in C/C++/Fortran sources/headers ... OK
    * checking compiled code ... OK
    * checking examples ... NONE
    * checking PDF version of manual ... OK
    * DONE
    Status: OK
    Essayez avec ça et adaptez-le à votre guise, ça devrait le faire même sur Windows.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre très actif Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 568
    Par défaut Encore des erreurs
    Merci de ta réponse détaillé, j'ai résolu le problème en fessant R CMD INSTALL de Rcpp depuis le shell directement et je sais pas pourquoi mais ça marche.
    Malheureusement un autre problème est survenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    * checking PDF version of manual ...Warning: l'exécution de la commande '"C:/PROGRA~1/R/R-3.2.2/bin/x64/Rcmd.exe" Rd2pdf  --batch --no-preview --build-dir=".../testSkeleton"' renvoie un statut 1
     WARNING
    LaTeX errors when creating PDF version.
    This typically indicates Rd problems.
    * checking PDF version of manual without hyperrefs or index ...Warning: l'exécution de la commande '"C:/PROGRA~1/R/R-3.2.2/bin/x64/Rcmd.exe" Rd2pdf  --batch --no-preview --build-dir=".../testSkeleton.Rcheck/testSkeleton' renvoie un statut 1
     ERROR
    Re-running with no redirection of stdout/stderr.
    Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet,  :
      pdflatex is not available
    Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet,  :
      pdflatex is not available
    Error in running tools::texi2pdf()
    Cette erreur est bizarre :$
    Quelqu'un ne serait-il pas la résoudre ?
    Ou sinon puis-je mettre quelque chose du genre: "BuildVignette: no" dans DESCRIPTION ? (pour ne par créer de pdf tout simplement)

    Merci beaucoup

  4. #4
    Membre expérimenté
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Par défaut
    Citation Envoyé par Matthieu76 Voir le message
    j'ai résolu le problème en fessant R CMD INSTALL de Rcpp depuis le shell directement et je sais pas pourquoi mais ça marche.
    Tant mieux ... pour le moment ! Dans l'état actuel des choses, le même souci referait surface que vous ne pourriez pas le régler proprement.

    Citation Envoyé par Matthieu76 Voir le message
    * checking PDF version of manual ...Warning: ...
    WARNING
    LaTeX errors when creating PDF version.
    This typically indicates Rd problems.
    * checking PDF version of manual without hyperrefs or index ...Warning: ...
    ERROR...
    pdflatex is not available
    ...
    Error in running tools::texi2pdf()

    [...]puis-je mettre quelque chose du genre: "BuildVignette: no" dans DESCRIPTION ?
    Non, à ce moment-là, les erreurs n'ont rien à voir avec les vignettes. Il s'agit du manuel du paquet qui ne peut être créé. Comme indiqué dans les journaux de utils::check, ces erreurs proviennent de deux sources potentielles.

    1) Vous n'avez pas bien documenté vos objets.
    Dans le répertoire man, il y aurait des erreurs dans certains fichiers. Il ne sert à rien d'attendre la phase de utils::check pour se rendre compte que la documentation des différents objets est boguée. Deux façons de le vérifier assez tôt, avec ou sans devtools :
    1. devtools::check_man() ;
    2. lapply(Sys.glob("man/*.Rd"), tools::parse_Rd).


    2) Certaines variables d'environnement LaTeX, soit sont indisponibles, soit ont des valeurs incorrectes.
    Vérifier le nécessaire à l'aide de ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sys.getenv("PDFLATEX")
    Sys.getenv("RSTUDIO_PDFLATEX") # Vu que vous utilisez RStudio
     
    # Pour plus d'information, voir
    ?tools::texi2pdf
    ?tools::Rd2latex
    Encore une fois : devtools automatise plusieurs choses dans ce secteur.

    Citation Envoyé par Matthieu76 Voir le message
    [...] pour ne par créer de pdf tout simplement [...]
    Quand un code plante, la meilleure façon de s'en sortir n'est certainement pas de cacher la poussière sous le tapis-compilateur ! Par ailleurs, étant donné que vous êtes sur Windows et que certaines variables d'environnement manquent, vous n'êtes pas à l'abri de rencontrer d'autres erreurs dues à une mauvaise configuration de Ghostscript et QPDF. Afin de voir si tout est en ordre, faites ces vérifications :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sys.which(Sys.getenv("R_QPDF", "qpdf"))
    Sys.which(Sys.getenv("R_GSCMD", "gswin64"))

  5. #5
    Membre très actif Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 568
    Par défaut re
    Vraiment merci beaucoup pour ta réponse rapide, cela m'aide beaucoup.
    Malheureusement j'arrive toujours pas à résoudre toutes les erreurs.
    Voici mon fichier Rdlatex.log :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    This is pdfTeX, Version 3.14159265-2.6-1.40.16 (MiKTeX 2.9 64-bit)
    entering extended mode
    (Rd2.tex
    LaTeX2e <2015/10/01> patch level 2
    Babel <3.9n> and hyphenation patterns for 69 languages loaded.
     
     
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\base\
    book.cls"
    Document Class: book 2014/09/29 v1.4h Standard LaTeX document class
     
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\base\
    bk10.clo")) (C:/PROGRA~1/R/R-3.2.2/share/texmf/tex/latex\Rd.sty
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\base\
    ifthen.sty")
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\tools
    \longtable.sty")
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\tools
    \bm.sty")
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\base\
    alltt.sty")
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\tools
    \verbatim.sty")
    Sorry, but "C:\Users\MATTHI~1\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64\pdflatex.exe" did not succeed.
     
    The log file hopefully contains the information to get MiKTeX going again:
     
      C:/Users/Matthieu HERNANDEZ/AppData/Local/MiKTeX/2.9/miktex/log/pdflatex.log
     
    You may want to visit the MiKTeX project page, if you need help.
    Warning: running command '"pdflatex" -interaction=nonstopmode "Rd2.tex"' had status 1
    Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet,  : 
      unable to run 'pdflatex' on 'Rd2.tex'
    This is pdfTeX, Version 3.14159265-2.6-1.40.16 (MiKTeX 2.9 64-bit)
    entering extended mode
    (Rd2.tex
    LaTeX2e <2015/10/01> patch level 2
    Babel <3.9n> and hyphenation patterns for 69 languages loaded.
     
     
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\base\
    book.cls"
    Document Class: book 2014/09/29 v1.4h Standard LaTeX document class
     
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\base\
    bk10.clo")) (C:/PROGRA~1/R/R-3.2.2/share/texmf/tex/latex\Rd.sty
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\base\
    ifthen.sty")
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\tools
    \longtable.sty")
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\tools
    \bm.sty")
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\base\
    alltt.sty")
    ("C:\Users\Matthieu HERNANDEZ\AppData\Local\Programs\MiKTeX 2.9\tex\latex\tools
    \verbatim.sty")
    Sorry, but "C:\Users\MATTHI~1\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64\pdflatex.exe" did not succeed.
     
    The log file hopefully contains the information to get MiKTeX going again:
     
      C:/Users/Matthieu HERNANDEZ/AppData/Local/MiKTeX/2.9/miktex/log/pdflatex.log
     
    You may want to visit the MiKTeX project page, if you need help.
    Warning: running command '"pdflatex" -interaction=nonstopmode "Rd2.tex"' had status 1
    Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet,  : 
      unable to run 'pdflatex' on 'Rd2.tex'
    Error in running tools::texi2pdf()
    You may want to clean up by 'rm -rf C:/Users/MATTHI~1/AppData/Local/Temp/RtmpMVpLux/Rd2pdf1e7c6a9811e6'
    Et voiçi mon ficher testSkeleton.Rd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    \name{testSkeleton-package}
    \alias{testSkeleton}
    \docType{package}
    \title{toto}
    \description{
    Simple function using Rcpp
    }
    \seealso{
    bla bla bla
    }
    \usage{
    euclideanDistanceCpp(vector1, vector2)
    }
    PS : Je suis en train de regarder ça http://www.r-bloggers.com/building-r...h-to-pdflatex/

  6. #6
    Membre expérimenté
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Octobre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 126
    Par défaut
    Oui, le lien que vous avez indiqué en P.S. vous aidera à configurer LaTeX. Veuillez relire mon précédant message, sinon un dialogue de sourds s'installera.
    Pour information, le fichier testSkeleton.Rd est valide. Les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    invisible(tools::parse_Rd("testSkeleton.Rd"))
    tools::checkRd("testSkeleton.Rd")
    sont évaluées sans erreurs ni avertissements. Bref, c'est votre environnement LaTeX qui n'est pas bien configuré. Les variables d'environnements précédemment indiquées suffisent à corriger ça.

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

Discussions similaires

  1. Erreur ORA-12663 Services required by client not available on the server
    Par bencot dans le forum Interfaces de programmation
    Réponses: 2
    Dernier message: 10/07/2008, 08h42
  2. ORA-01034: ORACLE not available
    Par PilExp51 dans le forum Oracle
    Réponses: 1
    Dernier message: 23/03/2006, 17h35
  3. [9i] ORA-01034: ORACLE not available
    Par babeb dans le forum Oracle
    Réponses: 1
    Dernier message: 14/12/2005, 18h20
  4. [10gX64]ORA-01034: ORACLE not available pb d'install
    Par neo.51 dans le forum Connexions aux bases de données
    Réponses: 37
    Dernier message: 30/09/2005, 16h31
  5. [JCreator] "package tools does not exists"
    Par snyper147 dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 2
    Dernier message: 04/05/2003, 20h08

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