我不久前在我的系统上安装了 miniconda3(在 Linux 上)。一件非常烦人的事情是,当我源激活我创建的环境(不包括基本环境)时,提示会显示我的 miniconda 安装的完整路径,而不仅仅是环境名称。
如何让它只显示环境名称而不是完整路径和名称。
作为参考,这是我的环境列表
# conda environments:
#
base * /scratch/XXXXXX/miniconda3
eof37 /scratch/XXXXXX/miniconda3/eof37
这是我使用base的提示
(base) [XXXXXX@server ~]$
这是我使用另一个创建的环境的提示
(/scratch/XXXXXX/miniconda3/eof37) [XXXXXX@server ~]$
我希望这个提示是
(eof37) [XXXXXX@server ~]$
相反
编辑:更多信息 - 我的 .bashrc 中的 conda 行
# added by Miniconda3 4.5.12 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/scratch/XXXXXX/miniconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/scratch/XXXXXX/miniconda3/etc/profile.d/conda.sh" ]; then
. "/scratch/XXXXXX/miniconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/scratch/XXXXXX/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
编辑2:
conda config --show
的输出
add_anaconda_token: True
add_pip_as_python_dependency: True
aggressive_update_packages:
- ca-certificates
- certifi
- openssl
allow_non_channel_urls: False
allow_softlinks: False
always_copy: False
always_softlink: False
always_yes: None
anaconda_upload: None
auto_update_conda: True
changeps1: True
channel_alias: https://conda.anaconda.org
channel_priority: True
channels:
- defaults
client_ssl_cert: None
client_ssl_cert_key: None
clobber: False
create_default_packages: []
custom_channels:
pkgs/main: https://repo.anaconda.com
pkgs/free: https://repo.anaconda.com
pkgs/r: https://repo.anaconda.com
pkgs/pro: https://repo.anaconda.com
custom_multichannels:
defaults: ["https://repo.anaconda.com/pkgs/main", "https://repo.anaconda.com/pkgs/free", "https://repo.anaconda.com/pkgs/r", "https://repo.anaconda.com/pkgs/pro"]
local: []
default_channels:
- https://repo.anaconda.com/pkgs/main
- https://repo.anaconda.com/pkgs/free
- https://repo.anaconda.com/pkgs/r
- https://repo.anaconda.com/pkgs/pro
disallowed_packages: []
download_only: False
envs_dirs:
- /scratch/XXXXXX/miniconda3
- /scratch/XXXXXX/miniconda3/envs
- /home/XXXXXX/.conda/envs
extra_safety_checks: False
force: False
json: False
local_repodata_ttl: 1
max_shlvl: 2
migrated_channel_aliases: []
no_dependencies: False
non_admin_enabled: True
notify_outdated_conda: True
offline: False
override_channels_enabled: True
path_conflict: clobber
pinned_packages: []
pkgs_dirs:
- /scratch/XXXXXX/miniconda3/pkgs
- /home/XXXXXX/.conda/pkgs
proxy_servers: {}
quiet: False
remote_connect_timeout_secs: 9.15
remote_max_retries: 3
remote_read_timeout_secs: 60.0
report_errors: None
rollback_enabled: True
safety_checks: warn
shortcuts: True
show_channel_urls: None
ssl_verify: True
track_features: []
use_index_cache: False
use_pip: True
verbosity: 0
whitelist_channels: []
您可能已经解决了,但仅供将来参考,这里是我的做法。
基本上,当环境位于自定义路径中时(例如,在您的情况下是
/scratch/XXXXXX/miniconda3
),conda 会提示完整路径。要使其仅提示 env 名称,请将 env 目录移动(或复制)到默认路径 (/scratch/XXXXXX/miniconda3/envs
) 并从 .condarc
中删除自定义路径。
来自 Conda 的文档,
使用其前缀激活环境后,您的提示将类似于以下内容:
(/absolute/path/to/envs) $
这可能会导致长前缀:
(/Users/USER_NAME/research/data-science/PROJECT_NAME/envs) $
要在 shell 提示符中删除此长前缀,请修改 .condarc 文件中的 env_prompt 设置:
$ conda config --set env_prompt '({name})'
如果您已有 .condarc 文件,这将编辑您的 .condarc 文件;如果没有,则创建一个 .condarc 文件。
现在您的命令提示符将显示活动环境的通用名称,即环境根文件夹的名称:
$ cd project-directory
$ conda activate ./env
(env) project-directory $