forked from AJResearchGroup/ormr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall_python_package.R
50 lines (50 loc) · 1.31 KB
/
install_python_package.R
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
#' Install one Python package
#' @inheritParams default_params_doc
#' @return nothing
#' @seealso use \link{install_python_packages} to install one
#' or more Python packages
#' @examples
#' # Use local python3
#' if (plinkr::is_on_ci() && is_conda_installed()) {
#' install_python_package(
#' package_name = "scipy",
#' ormr_folder_name = "python3"
#' )
#' }
#'
#' # Use conda
#' if (plinkr::is_on_ci() && is_conda_installed()) {
#' install_python_package(
#' package_name = "scipy"
#' )
#' }
#' @author Richèl J.C. Bilderbeek
#' @export
install_python_package <- function(
package_name,
channel = character(),
ormr_folder_name = get_default_ormr_folder_name(),
python_version = get_default_python_version(),
verbose = FALSE
) {
ormr::check_python_package_name(package_name = package_name)
if (ormr_folder_name == "python3") {
system2(
command = "python3",
args = c("-m", "pip", "install", package_name)
)
} else {
ormr::create_and_activate_conda_env(
ormr_folder_name = ormr_folder_name,
python_version = python_version,
verbose = verbose
)
ormr::check_conda_env_exists(ormr_folder_name = ormr_folder_name)
reticulate::conda_install(
packages = package_name,
envname = ormr_folder_name,
channel = channel
)
}
invisible(NULL)
}