Returns the packages installed in a Conda environment, as a data frame.
Arguments
- env_name
Character string with the environment name. It must be a plain directory name that is valid on Linux, macOS and Windows:
Not empty, and not
.or...Not starting with
-, and not ending with..Without path separators,
:,#, whitespace, control characters or<>"|?*.Not a Windows device name, such as
NULorCOM1(see Environment names increate_env()).
Invalid values abort with class
condathis_invalid_env_name. Functions that take only names reject anenv_path()value with classcondathis_env_path_read_only.run(),run_bin(),run_pipeline()andrun_step()accept one.- method
Character string naming the backend.
"auto"(the default) uses the backend that ownsenv_namewhen it exists, and otherwise the first available backend ingetOption("condathis.backend_priority")order (see condathis-options). Any name fromlist_registered_backend_names()selects that backend, and"micromamba"is built in. The name of a backend whose packagecondathisknows, such as"rattler"of therattlerthispackage, also selects it.condathisloads the package on first use. It aborts with classcondathis_backend_not_installedwhen the package is not installed."native"is a deprecated alias for"micromamba"(warns once per session). If you name a backend other than the owner, functions that change the environment abort with classcondathis_backend_mismatch. The others warn (condathis_backend_mismatch_warning) and use the owner. An environment found under several backends aborts withcondathis_backend_ambiguous_envunlessmethodnames one of them. Invalid values abort with classcondathis_invalid_method.- verbose
Character string that controls the console output. One of:
"output": show the output of the command and the messages of condathis."silent": show nothing."cmd": show the command line."spinner": show only a spinner."full": show the command line, the output, and the backend's own log.
TRUEmeans"output"andFALSEmeans"silent". Every level except"silent"shows a spinner in interactive sessions. Invalid values abort with classcondathis_invalid_verbose(see condathis-conditions). The default is shown in Usage.The command line shown, the
cmdof a result and the messages ofcondathisshow the password and the token of a URL as*****.micromambadoes the same (https://user:*****@host/channel,https://host/t/*****/channel). The command still gets them.
Value
A data frame (a tibble) with one row per installed package, returned visibly. Six columns are guaranteed on every backend:
name(chr): the package name.version(chr): the package version.build_number(int): the build number.build_string(chr): the build string.channel(chr): a channel name or URL.platform(chr): the platform subdirectory, such as"linux-64"or"noarch".
The list includes the packages that pip or uv installed into the
environment, with every backend. It shows them as micromamba does:
channel "pypi", build string "pypi_0", build number 0, and the
platform as pip reports it, such as "linux-x86_64". Only the
environment's own site-packages counts, not the user's site
directory or PYTHONPATH.
Other columns vary by backend. Do not rely on them in code that must
work with every backend. The "micromamba" backend today also includes
base_url, dist_name, md5, sha256 and url.
list_packages() shows the password and the token of a channel URL as
*****, as micromamba does (https://user:*****@host/channel,
https://host/t/*****/channel).
A missing environment aborts with class
condathis_list_packages_env_not_found (also
condathis_env_not_found). A failed listing aborts with class
condathis_list_packages_failed (also condathis_backend_error).
A listing without the six columns also has the class
condathis_backend_invalid_return.
Details
list_packages() is a query: it never creates an environment, also not
the default "condathis-env". A missing environment aborts. When the
environment has no directory, as on a new data directory,
list_packages() does not start or install micromamba.
When no micromamba binary is installed, the micromamba backend reads
the envs directory of its data directory and the package records in
conda-meta/ instead. It never installs micromamba.
See also
condathis-conditions for every condition class.
Other environments:
create_env(),
env_exists(),
env_path(),
get_env_dir(),
install_packages(),
list_envs(),
remove_env(),
validate_env()
Examples
if (FALSE) { # \dontrun{
condathis::with_sandbox_dir({
# A local channel shipped with condathis, with `polyglot`: a
# dependency-free script that runs on Linux, macOS and Windows.
channel <- system.file(
"extdata", "polyglot-channel",
package = "condathis"
)
# Creates a Conda environment with `polyglot`
condathis::create_env(
"polyglot",
env_name = "polyglot-env",
channels = channel
)
# Lists the packages in env `polyglot-env`
dat <- condathis::list_packages("polyglot-env")
print(dat[, c("name", "version", "channel")])
})
} # }