为什么conda提示符中包含路径以及如何缩短它

问题描述 投票:0回答:2

我不久前在我的系统上安装了 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: []
anaconda conda miniconda
2个回答
0
投票

您可能已经解决了,但仅供将来参考,这里是我的做法。

基本上,当环境位于自定义路径中时(例如,在您的情况下是

/scratch/XXXXXX/miniconda3
),conda 会提示完整路径。要使其仅提示 env 名称,请将 env 目录移动(或复制)到默认路径 (
/scratch/XXXXXX/miniconda3/envs
) 并从
.condarc
中删除自定义路径。


0
投票

来自 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 $
© www.soinside.com 2019 - 2024. All rights reserved.