bash - 如何在 .bashrc 中将别名功能与 conda 初始化相结合
问题描述
我需要在 .bashrc 中组合两个不同的部分我的目的是在尝试初始化 conda 之前将 PYTHONPATH 初始化为空。
在 .bashrc 中有 conda 初始化部分。
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/me/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/me/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/me/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/me/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
但是,我在使用默认 PYTHONPATH 时遇到了问题,因为除非我想使用 conda,否则我无法触及这个默认值。所以,我创建了 conda() 别名。但它与使用 conda 初始化部分发生冲突。
错误消息如下所示。
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
这意味着未执行 conda 初始化。
这是康达()。
state=true
conda() {
if $state; then
state=false
PYTHONPATH=''
command conda "$@"
else
command conda "$@"
fi
}
.basrh 的行为应该类似于我尝试在命令行上使用 conda 语句,仅在 conda 初始化工作之前第一次清除 PYTHONPATH。如果我不尝试使用 conda 语句,PYTHONPATH 应该是不可触及的。
解决方案
我不确定我是否了解正在发生的事情或您正在尝试做的事情,但这是您可以尝试的:
savePYTHONPATH=PYTHONPATH
PYTHONPATH=''
# the conda initialize section should go here
PYTHONPATH=$savePYTHONPATH
然后你就可以使用你的conda
功能了。
如果这不起作用,那么它仍然应该为您提供一些关于如何进行的想法。
请注意,一旦您的conda
函数运行,PYTHONPATH
即使在state
is之后也将保持为空,false
除非其他东西将其设置为非空值。所以我不太确定条件的目的是什么。
推荐阅读
- android-studio - 运行“ns run”和“ns doctor android”时获取“ANDROID_HOME 环境变量未设置”
- hadoop - SSIS 无法将 lob 字段转换为 varchar
- flutter - Flutter 在 StateNotifier 中访问旧状态的更好方式?
- php - 读取任何类型的文件并将其内容添加到 php/laravel 的电子邮件正文中
- python - 在 vscode 中选择 docker 容器的解释器
- java - 如何在Java中将对象附加到已经序列化的文件中
- vba - 将变量从类模块传递到用户窗体
- java - 如何使用 android java 代码更改主题属性(例如:textColorAnswe)
- php - 如何检查或计算帖子“草稿”状态并在 wordpress 菜单旁边显示气泡
- python - 将“%Y-%m-%d”的日期顺序反转为“%d-%m-%Y”