我修改了我的 anaconda 环境目录。安装在替代目录中的任何环境都会在提示修饰符中显示其完整路径。我只期待环境的名称。为什么会显示完整路径?这只是美观还是会影响其他方面?
通常在使用 anaconda 提示符和命令创建环境时:
>conda create -n my_env
我使用以下方式激活环境:
conda activate my_env
提示从 (base) 更改为:
(my_env)>
我希望在同一台计算机上的用户之间共享环境。在 https://conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#specify-env-directories 之后,我将文件 .condarc 添加到基本 conda 安装路径,其中包含:
# envs_dirs: - C:\Users\Public\CondaEnvs
以相同的方式创建一个新环境,当我激活这个环境时,我现在看到:
(C:\Users\Public\CondaEnvs\my_shared_env)
当环境处于活动状态时,环境变量 CONDA_PROMPT_MODIFIER 也已设置为 (C:\Users\Public\CondaEnvs\my_shared_env)。
conda config --show 的当前输出是:
add_anaconda_token: True
add_pip_as_python_dependency: True
aggressive_update_packages:
- ca-certificates
- certifi
- openssl
allow_conda_downgrades: False
allow_cycles: True
allow_non_channel_urls: False
allow_softlinks: False
always_copy: False
always_softlink: False
always_yes: None
anaconda_upload: None
auto_activate_base: True
auto_update_conda: True
bld_path:
changeps1: True
channel_alias: https://conda.anaconda.org
channel_priority: flexible
channels:
- defaults
client_ssl_cert: None
client_ssl_cert_key: None
clobber: False
conda_build: {}
create_default_packages: []
croot: C:\Users\ClibbonA\conda-bld
custom_channels:
pkgs/main: https://repo.anaconda.com
pkgs/free: https://repo.anaconda.com
pkgs/r: https://repo.anaconda.com
pkgs/msys2: 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/msys2
local:
debug: False
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/msys2
default_python: 3.7
deps_modifier: not_set
dev: False
disallowed_packages: []
download_only: False
dry_run: False
enable_private_envs: False
env_prompt: ({default_env})
envs_dirs:
- C:\Users\Public\CondaEnvs
- C:\Users\ClibbonA\.conda\envs
- C:\ProgramData\Anaconda3\envs
- C:\Users\ClibbonA\AppData\Local\conda\conda\envs
error_upload_url: https://conda.io/conda-post/unexpected-error
extra_safety_checks: False
force: False
force_32bit: False
force_reinstall: False
force_remove: False
ignore_pinned: False
json: False
local_repodata_ttl: 1
migrated_channel_aliases: []
migrated_custom_channels: {}
non_admin_enabled: True
notify_outdated_conda: True
offline: False
override_channels_enabled: True
path_conflict: clobber
pinned_packages: []
pip_interop_enabled: False
pkgs_dirs:
- C:\ProgramData\Anaconda3\pkgs
- C:\Users\ClibbonA\.conda\pkgs
- C:\Users\ClibbonA\AppData\Local\conda\conda\pkgs
proxy_servers: {}
prune: False
quiet: False
remote_connect_timeout_secs: 9.15
remote_max_retries: 3
remote_read_timeout_secs: 60.0
report_errors: None
rollback_enabled: True
root_prefix: C:\ProgramData\Anaconda3
safety_checks: warn
sat_solver: pycosat
shortcuts: True
show_channel_urls: None
solver_ignore_timestamps: False
ssl_verify: True
subdir: win-64
subdirs:
- win-64
- noarch
target_prefix_override:
track_features: []
update_modifier: update_specs
use_index_cache: False
use_local: False
verbosity: 0
whitelist_channels: []
根据conda文档,您需要使用命令
conda config --set env_prompt "({name}) "
(在Windows上使用双引号)。按照这些说明,我发现当我停用环境时,前置字符串不会显示 (base)
,而是 (Anaconda3)
。这与人们的报道有点不一致,但也许这是 Windows 的问题。就像双引号一样:p
Stackoverflow 上的其他地方有人对整个事情进行了一些研究,并展示了一些命令,这些命令可以绕过这个问题,尽管不断输入它们并不是很方便。根据该线程中的答案,我拼凑了以下解决方案,这对我来说很有效:
myenv
的虚拟环境。将 .condarc
文件放入其目录中(即 <current directory>\myenv\.condarc
)。文件的内容应为 env_prompt: "({default_env}) "
(加上与您的项目相关的其他条目)。.condarc
文件,请使用命令 conda config --set env_prompt "({name}) "
创建一个文件,并在右括号后添加一个空格(如果您愿意)。如果这样的文件已经存在,它应该包含行 env_prompt: "({name}) "
.现在启动您的 conda 控制台。环境提示最初显示
(Anaconda3)
,但是一旦您激活和停用虚拟环境,所有内容都会按预期方式显示。当 conda env list
激活时,命令 myenv
始终在正确的环境旁边显示星号。
你尝试过吗:
conda activate env_name
或者
source activate env_name
?此命令应该激活您的环境,并且您运行的程序中不应该有完整的 url 路径。
env_name
是您的环境的名称。
你也可以尝试一下这个:
conda config --set changeps1 False
此后您必须重新启动命令提示符,即在另一个窗口中运行您的程序。
我遇到了同样的问题并做了一些测试。我不确定Anaconda内部是如何处理这个问题的,但我发现这可能与虚拟环境目录的命名有关。最后一级虚拟环境目录应命名为“envs”,例如:
C:\Users\Public\Conda\envs
然后就可以了。否则,将显示完整路径。设置 env_prompt 也是解决问题的一种方法,但它并不完美,因为它也将根环境目录更改为“Anaconda3”。