[Rd] about integration of a library into package creation

Nicolas Turenne nicolas.turenne at jouy.inra.fr
Tue Jun 13 12:03:29 CEST 2006


i follow your recommendation writing this :
in the description file
Depends: R (>= 2.3), quadprog, ade4, spdep
Imports: quadprog, ade4, spdep

in the namespace file
useDynLib(quadprog)
useDynLib(spdep)
useDynLib(ade4)
importFrom("ade4", "dist.dudi")
importFrom("quadprog", "solve.QP")
importFrom("ade4", "mstree")
importFrom("ade4", "neig2mat")
importFrom("ade4", "dist.dudi")
importFrom("ade4", "dudi.pca")
importFrom("ade4", "dudi.coa")
importFrom("spdep", "knearneigh")

and the result of compiling is :
  preparing package svcR for lazy loading
Erreur dans loadNamespace(ns, lib.loc) : le package 'quadprog' n'a pas 
d'espace de noms
Exécution arrêtée
make: *** [lazyload] Error 1
*** Installation of svcR failed ***

it says that quadprog has not a namespace
perhaps it is due to location of quadprog.dll
i have put it into inst/src directory

thank for help

Nicolas

Uwe Ligges a écrit :

> Nicolas Turenne wrote:
>
>> your answer is correct after checking some doc
>> but examples are rare
>>
>> when i write in the description file
>> Depends: R (>= 2.3), quadprog, ade4, spdep
>> and in the namespcae file
>>
>> useDynLib(quadprog)
>> useDynLib(spdep)
>> useDynLib(ade4)
>> importFrom("dist.dudi", "ade4")
>
>
>
> Please do it the right way (package name first!):
>
> importFrom("ade4", "dist.dudi")
>
> Uwe Ligges
>
>
>
>
>> importFrom("solve.QP", "quadprog")
>> importFrom("mstree", "ade4")
>> importFrom("neig2mat", "ade4")
>> importFrom("dist.dudi", "ade4")
>> importFrom("dudi.pca", "ade4")
>> importFrom("dudi.coa", "ade4")
>> importFrom("knearneigh", "spdep")
>>
>> i obtain :
>> Namespace dependencies not required:
>>   dist.dudi dudi.coa dudi.pca knearneigh mstree neig2mat solve.QP
>>
>> if i delete the importFrom lines
>> i get an error about "loading / namespace not succesful" for svcr
>>
>> i think the solution is not far but it is disturbing
>>
>> thank for help
>>
>> ---
>> Nicolas
>>
>>
>> Duncan Murdoch a écrit :
>>
>>> On 6/12/2006 12:25 PM, Nicolas Turenne wrote:
>>>
>>>> in that sense, it is useless to load the library from R source code 
>>>> making my package
>>>> which is supposed to include it and load it
>>>>
>>>> so if i understand the R philosophy it is not possible to load dll 
>>>> from outside ;
>>>> the user has to load my package  and manually has to load the 
>>>> necessary libraries
>>>> each time he has to use my library,  right ?
>>>
>>>
>>> Not at all.  When set up correctly, the user should just need to say
>>> library(svcR) and all necessary packages and DLLs will be loaded.
>>>
>>> The way to specify other packages is through the "Depends" line in 
>>> the DESCRIPTION file, and/or the import/importFrom lines in your 
>>> NAMESPACE file.
>>>
>>> Duncan Murdoch
>>>
>>>> -- 
>>>> Nicolas
>>>>
>>>> Prof Brian Ripley a écrit :
>>>>
>>>>> And also to load  the package, maybe with
>>>>>
>>>>> rterm R_DEFAULT_PACKAGES=NULL
>>>>>
>>>>>> library(svcR)
>>>>>
>>>>>
>>>>>
>>>>> as these messages often indicate missing package dependencies.
>>>>>
>>>>>>> * checking package subdirectories ... WARNING
>>>>>>> Subdirectory 'src' contains no source files.
>>>>>>> * checking R files for syntax errors ... OK
>>>>>>> * checking R files for library.dynam ... OK
>>>>>>> * checking S3 generic/method consistency ... WARNING
>>>>>>> Erreur : le chargement du package / espace de noms a echoue' 
>>>>>>> pour 'svcR'
>>>>>>> Sequence d'appel :
>>>>>>> 2: stop(gettextf("package/namespace load failed for '%s'",
>>>>>>> libraryPkgName(packag
>>>>>>> e)),
>>>>>>>        call. = FALSE, domain = NA)
>>>>>>> 1: library(package, lib.loc = lib.loc, character.only = TRUE, 
>>>>>>> verbose =
>>>>>>> FALSE)
>>>>>>> Execution arrete'e
>>>>>>> See section 'Generic functions and methods' of the 'Writing R 
>>>>>>> Extensions'
>>>>>>> manual.
>>>>>>> * checking replacement functions ... WARNING
>>>>>>> Erreur : le chargement du package / espace de noms a echoue' 
>>>>>>> pour 'svcR'
>>>>>>> Sequence d'appel :
>>>>>>> 2: stop(gettextf("package/namespace load failed for '%s'",
>>>>>>> libraryPkgName(packag
>>>>>>> e)),
>>>>>>
>>>>>>
>>>> ______________________________________________
>>>> R-devel at r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>>>
>>>
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
>



More information about the R-devel mailing list