我正在尝试编写同时使用conda
和的安装程序pip
。我想激活conda
要调用的环境pip
,但是在同一脚本中执行此操作会导致问题。
#!/usr/bin/env bash
set -euo pipefail
conda create -y --name myenv python=3.6
conda init bash
conda activate myenv
# Perform pip-based installation here.
步骤运行bash setup-environment.sh
失败conda activate
:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
虽然知道重新启动Shell可以解决问题会有所帮助,但我无法在脚本中执行此操作。有解决方法吗?
在登录模式下运行bash应该可以工作,例如,
bash -l setup-environment.sh
注意,conda init
脚本中的是多余的-它编辑,.bash_profile
但实际上并不初始化当前的bash会话。用户只需执行一次即可。因此,脚本应更改为
#!/usr/bin/env bash -l
set -euo pipefail
conda create -y --name myenv python=3.6 pip
conda activate myenv
# Perform pip-based installation here.
你可以像这样运行它./setup-environment.sh
。
诚然,我缺少您可能在脚本中计划的其他部分,但是使用Conda YAML环境定义可以更简洁地完成显示的所有内容。例如,如果您编写如下的YAML文件:
肌醇
name: myenv
channels:
- defaults
dependencies:
- python=3.6
- pip
- pip:
- some_pkg
然后运行
conda env create -f myenv.yaml
它将完全执行您的脚本所执行的操作,包括所有pip安装。您可以在pip中运行的所有命令requirements.txt
都可以包含在YAML中。请参阅Conda GitHub中的Advanced Pip Example。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句