問題を再現するにはこれで十分です:
名前を付けて保存test.bat
:: Create Conda env
set name=%1
conda create -n %name% python -y
activate %name%
echo "Never gets here"
:: script should continue below...
cmdから実行します。
>test.bat "testname"
出力:
C:\Users\Jamie\git>test.bat testname
C:\Users\Jamie\git>set name=testname
C:\Users\Jamie\git>conda create -n testname python -y
Fetching package metadata ...........
Solving package specifications: .
Package plan for installation in environment C:\Users\Jamie\Miniconda2\envs\testname:
The following NEW packages will be INSTALLED:
pip: 9.0.1-py27_1
python: 2.7.13-0
setuptools: 27.2.0-py27_1
vs2008_runtime: 9.00.30729.5054-0
wheel: 0.29.0-py27_0
#
# To activate this environment, use:
# > activate testname
#
# To deactivate this environment, use:
# > deactivate testname
#
# * for power-users using bash, you must source
#
C:\Users\Jamie\git>activate testname
(testname) C:\Users\Jamie\git>
以上です。echo
ステートメントは実行されませんが、エラー メッセージは表示されません。
conda env をアクティブにするとバッチ スクリプトが停止するのはなぜですか。また、それを回避する方法はありますか。
ベストアンサー1
使用
call activate %name%
activate
はバッチ ファイルであると想定しています。 を使用するとcall
、そのバッチが終了した後に処理が戻ります。 がない場合、call
実行は に転送されactivate
、 が終了すると終了しますactivate
。