新しい conda env をアクティブ化した後、バッチ スクリプトが停止するのはなぜですか? 質問する

新しい conda env をアクティブ化した後、バッチ スクリプトが停止するのはなぜですか? 質問する

問題を再現するにはこれで十分です:

名前を付けて保存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

おすすめ記事