I have recently created a small package (https://github.com/lc5415/HDATDS) and hosted it in conda (creating custom conda-recipe and so forth - https://anaconda.org/lucha6/r-hdatds).
Problem
Installing the package from rstudio works fine but when I install from conda (conda install -c lucha6 r-hdatds), open an r session from the terminal and run installed.packages(), I cannot see my package listed.
Reproducible example
In terminal:
conda create -n testPackage
conda activate testPackage
conda install -c lucha6 r-hdatds
#open R session
R
#within R
installed.packages() #list installed packages
I would expect to see a package called HDATDS (in capital letters) but I see no sign of it. Perhaps there is something wrong with my meta.yaml file:
package:
name: r-hdatds
version: 0.1.1
source:
git_url: https://github.com/lc5415/HDATDS.git
requirements:
- r-base
run:
- r-base
- r-dplyr
- r-ROCR
- r-tidyr
- r-e1071
- r-glmnet
- r-xgboost
about:
# user-oriented info to be displayed in anaconda.org
home: https://github.com/lc5415/HDATDS
license: MIT
summary: This package was developed as a learning exercise and also to share
useful functions for the Computational Epidemiology and Translational Data Sciences
with my colleagues from the MSc in Health Data Analytics & Machine Learning
license_family: MIT
I believe that if I run devtools::install_github("lc5415/HDATDS") from an R session from the terminal, the package is kept in future sessions but ideally the package should be automatically available from the conda installation.
Appreciate any help in fixing this issue.
Related
My goal is to use this package (https://github.com/tiagodc/TreeLS) but it was deprecated from CRAN (https://cran.r-project.org/web/packages/TreeLS/index.html). It requires an older version of R yet its dependencies such as the raster package require R 3.5 or up. I considered two approaches.
using R studio and changing the global options to an older version of R, but I frequently use many geospatial packages and since this package has older dependencies I didn't want to install older versions of packages I use all the time.
Create a virtual environment in Mini Conda 3 dedicated to use for this package. I choose this option because it would be self contained.
Here is the workflow so far.
conda search -c r r
conda create -n newR351 -c conda-forge r-base=3.5.1 -y
conda install -c r rtools -y
Successfully creates a conda environment called newR351 and installs r tools to that environment folder within mini conda 3.
Location of conda environment with R 3.5.1 install
C:\Users\me\Miniconda3\envs\newR351
When I try to install devtools so I can remote install TreeLS from github I get a warning with zero exit status. The devtools package installs, but it installed to my appdata folder and not my mini conda environment.
conda install -c r devtools -y
The downloaded source packages are in
'C:\Users\me\AppData\Local\Temp\RtmpYByvp8\downloaded_packages'
How can I access devtools on my conda environment newR351? Do I need to build a cran skeleton? When I activate R in this environment and try to load the devtools library I get this.
(newR351) C:\Users\me>R
R version 3.5.1 (2018-07-02) -- "Feather Spray"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)
...
>library(devtools)
Error in library(devtools) : there is no package called 'devtools'
What are best practices for creating an environment specific for an older R package? Anyone else use TreeLS?
First, the devtools isn't showing up because R packages in Conda repositories are conventionally prefixed with "r-", so installing conda install r-devtools should do the trick. However, I don't think Conda is the best strategy here.
Below R version 3.6, the Conda package coverage for R packages is rather poor. Also, installing non-Conda packages that require compilation into a Conda R environment is a pain and generally doesn't work out-of-the-box in my experience. Plus, not only does the TreeLS require compilation, but it has dependencies that are not Conda packages which require compilation. I would avoid this.
Option 1 is feasible. R allows multiple installations, and with manipulating environment variables (I think RSTUDIO_WHICH_R, R_LIBS are the pertinent ones) one can switch between them.
However, were this my situation, I'd spin up a docker container, probably rocker/rstudio:3.5 and use that for this project. Since the underlying image is Linux, it'll take awhile to compile, but you can version it at that point and then always have that available to spin up. This avoids having to muck around with any system settings and should be mostly straight-forward installing.
I'm facing difficulties downloading the r package rsvg. I created first an environment with conda for the latest R version 4.0.2 following these instructions. I was able to download many other R packages & bioconductor packages without problem, however, this one produces huge pile of lines while configuring it and ends with errors downloadind its dependencies (systemfonts, stringi, stringr, gdtools, magick, svglite, knitr). My exact command is install.packages("rsvg", dependencies =T). Trying to download each of those packages produced also a tree of required dependencies (with configuration fail at the end of each).
Among the lines I noticed this error /user/include/freetype2/freetype/config/ftheader.h:3:12: fatal error x86_64-linux-gnu/freetype2/config/fthreader.h no such file or directory which make me suspect that my R installation is incopmlete or corrupted. I tested it with other R versions (e.g. R 3.6.0) yet the same error appear. Installing it on windows (Rstudio 3.6.2) also didn't work, and now I'm wondering if this package needs to be installed differently or it is system related problem? Any help would be highly appreciated
You need to create a new environment and then you can install R 4.+ in Anaconda. Follow these steps.
conda create --name r4-base
After activating r4-base run these commands
conda install -c conda-forge r-base
conda install -c conda-forge/label/gcc7 r-base
Finally, you will notice r-basa version 4 will be installed.
Thereafter, you can install any supported packages. But with this only, you won't have the ability to use it in the Jupyter notebook. You need to install install.packages('IRkernel') and Jupyter notebook as well if you want to use it. Otherwise you are good to go with R-Studio.
For Jupyter Installation and RKernel.
conda install jupyter
Then open the R console. Write in R console
install.packages('IRkernel')
IRkernel::installspec()
Congrats! You can use Notebook for Python and R.
I am using Windows, and am unable to install any package in R. I tried it with R 3.53 and 3.62. Both give an error.
I get the following type of error in the end:
Error in install.packages : cannot open file 'C:/Users/Arti Agarwal/Documents/R/win-library/3.5/file3a2065f64427/BH/include/boost/geometry/util/readme.txt': Permission denied
I also get this type of an error in between:
There is a binary version available but the source version is later:
binary source needs_compilation
yaml 2.2.0 2.2.1 TRUE
I don't know how to troubleshoot this further. Any suggestions?
I think I fixed it. Posting the answer for the benefit for anyone else having the same problem.
1) I fixed the file permission error by running R as admin.
2) The packages don't work with R 3.6.2 or R 3.5.3 but strangely enough they work with R 3.6.1
It gives a warning that the package was built with R 3.6.2 but it doesnt work with it when you install it. Hence the confusion.
thanks for all of your help.
Install conda for windows
# if you have 64 bit computer:
https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe
# if 32 bit computer:
https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86.exe
Run the exe.
Create a new environment for your R:
# create new virtual environment for R with name 'newR'
conda create --name newR
# enter this created environment
conda activate newR # or: source activate newR
# install there now newest R
conda install -c conda-forge r-base
# you can also install rstudio
conda install -c conda-forge rstudio
# and also more difficult to install R packages
# search for them by googling: 'conda install <packagename>'
# mostly in anaconda site you see command for install.
# next time you want to start R do:
# enter environment
conda activate newR # if that doesn't work: source activate newR
# start R
R
Learn basic conda commands investing only 11 minutes:
https://www.youtube.com/watch?v=YJC6ldI3hWk
If you want to become a serious developer/programmer - sooner or later anyway you have to learn conda.
This question is motivated by `jupyter notebook` gives error: `"Could not open static file ''"` on macOS
After conda update jupyter, jupyter --version gives jupyter-notebook : 6.0.0
However on https://github.com/jupyter/notebook, clicking Branch: master -> tags I see a 6.0.1 tag.
How can I upgrade to 6.0.1?
> conda install jupyter=6.0.1
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
PackagesNotFoundError: The following packages are not available from current channels:
- jupyter=6.0.1
Current channels:
- https://repo.anaconda.com/pkgs/main/osx-64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/r/osx-64
- https://repo.anaconda.com/pkgs/r/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
I can't see any candidates on https://anaconda.org
Is this a dead-end?
First, note that the actual package you want to upgrade/install is notebook, not jupyter. The Anaconda channel hasn't released that version of notebook yet. Conda Forge has it, so you can get it with
conda install -c conda-forge notebook
However, just be aware that compatibility between Conda Forge and Anaconda package builds is not guaranteed. Best practice is to create a new env that prioritizes Conda Forge from the start:
conda create -n my_jupyter_env -c conda-forge jupyter
Generally it isn't a good idea to mess with base env, and if you want something other than a default Anaconda install, I recommend starting with Miniconda and leaving base alone (other than the occasional conda upgrade conda).
I'm getting a little bit crazy with this issue. I'm trying to install an R package using conda in my environment (python 2.7) in my home on a cluster (i.e. without root permissions). I firstly installed R in my env using:
conda install -c r r=3.4
Then:
conda install -c conda-forge python-igraph
(because igraph is required by my library of interest)
and finally:
conda install -c conda-forge r-diffusionmap
Unfortunately when I launch R the following message appears:
Error: package or namespace load failed for 'RevoUtilsMath': .onLoad
failed in loadNamespace() for 'RevoUtilsMath', details: call: NULL
error: Remove Microsoft R and then re-install. Be sure to select MKL
libraries as an install option.
During startup - Warning message:
package 'RevoUtils' was built under R version 3.4.3
What does it mean? How can I solve this?
Thank you in advance
I had this same issue after I installed some libraries (Rcpp included) in my root R, but not my conda environment (which screwed up conda). This would cause kernel death anytime a jupyter notebook running R was even opened.
The fix for me was:
Uninstall Anaconda3
Reinstall Anaconda3
Reinstall all the libraries I needed (mostly just Bioconductor in R)
A few other issues popped up, like package inconsistencies, but I dealt with those as described here.
All R packages on conda-forge (or Bioconda) are compiled against one single version or R for each new release branch (usually starting from patch 1, so 3.x.1, except for 3.4.3). This is due to ABI incompatibility problems.
Also note that defaults and conda-forge channels are (where) not binary compatible (although now they should be). And that since 2018 the default anaconda channel is distributing Microsoft R Open as default R, whether all packages from conda-forge should be preferably used with R from conda-forge.
You should be able to solve this issue by installing R using conda install -c conda-forge r-base.
the same error information for me when I open R for run code in ubuntu platform(18.4), and there is no other useful methods to solve it.My R version is 3.4.3.enter image description here