2016-05-01 24 views
1

Windows NT上でcygwinインタフェースを使用してanaconda環境を設定しようとしましたが、失敗しました。Windows上でCygwinでanaconda環境を使用する場合

作成環境(conda create -n test_env)は正常に動作します。しかし、activate test_envは失敗します。

私はそれを試してみましたハッキン​​グ:

export PATH=/cygdrive/c/users/nick/anaconda3/envs/test:$PATH 

これは、いくつかの行動(右のpythonにwhich pythonポイント)を修正します。しかし、 "conda install"コマンドを実行すると、環境ではなくルートanacondaディレクトリにインストールされます。おそらく、エクスポートはbashセッションのローカルであり、condaはPATHの別のバージョンを呼び出しますか? PATHグローバルの変更を行う方法はありますか?

答えて

0

CygwinはLinux環境をエミュレートするので、 "activate test_env"の代わりに "source activate test_env"を使用する必要があります。

+0

残念ながら、それはそれ自身のエラーをスローします。 anacondaのフォーラムから、答えは「4.1を待つか、開発版を使用する」と思われます。それはそこに固定されています。 :) –

+0

特に、私は 'bash:/ usr/bin/conda:No such file or directory'を得ます。 –

2

かなりの時間問題に取り組んだ後、私はAnacondaのPython(および関連する環境)をCygwinに統合するための合理的かつ実行可能な方法を達成したと思います。 CygwinとAnacondaの両方が独立して動作していると仮定すると、CygwinのAnacondaツールすべてにアクセスするには、.bash_profileの次の設定がこのトリックを行うようです。 (私は、インテグレーションに関連した.bash_profileの部分のみを含んでいました。私が何か不注意で逃したことがないことを望みました。)

この設定は基本的に3つのことを行います。最初に、ユーザは、ディレクトリ$CONDA_BASE_DIRをconda/anaconda/minicondaの基本環境がインストールされている場所になるように明示的に設定する必要があります。次に、シェル変数$CONDA_DEFAULT_ENVを使用して現在のconda環境を追跡する機能が.bash_profileにあります。最後に、エイリアスと、標準のcondaactivateコマンドの置換コマンドとして使用するcyg-activateという関数を定義します。 変数名$CONDA_DEFAULT_ENVは特別なもので、実際のcondaコマンドで内部的に使用されています。

この設定を使用するには、私はCygwinのbashシェルに利用できる環境を作っている間、私は通常、アナコンダコマンドプロンプトでcondaactivateを使用するのと同じ方法で、cyg-condacyg-activateを使用することができています。

改善のための提案に確かオープンなど

############################################################################### 

# Anaconda Environment Selection - Plese set CONDA_BASE_DIR to the directory 
# containing the base installation of anaconda/miniconda. 

export CONDA_BASE_DIR=/cygdrive/c/Users/Patrick/Miniconda3 

# Proxy Servers & Network Setup (if needed) 

export HTTP_PROXY= 
export HTTPS_PROXY= 

# IMPORTANT - Ignore carriage returns when using a Cygwin environment. 

export SHELLOPTS 
set -o igncr 

############################################################################### 

# Manage conda environments for Python. We check the environment variable 
# $CONDA_DEFAULT_ENV to see which environment is desired. The default (root) 
# environment will be chosen if nothing is specified. Note that this variable 
# will be explicitly managed by the cyg-activate () function we have defined 
# below, specifically for the purpose of changing environments. The root 
# environment is also handled slightly different from the others when it comes 
# to setting the CONDA_DEFAULT_ENV variable. 

if [ ${CONDA_DEFAULT_ENV} ] && [ ${CONDA_DEFAULT_ENV} != 'root' ] 
then 
    # SELECT ONE OF THE NON-DEFAULT ENVIRONMENTS 
    export CONDA_PREFIX=${CONDA_BASE_DIR}/envs/${CONDA_DEFAULT_ENV} 
else 
    # SELECT THE DEFAULT ENVIRONMENT (and set CONDA_DEFAULT_ENV full path) 
    export CONDA_DEFAULT_ENV=root 
    export CONDA_PREFIX=${CONDA_BASE_DIR} 
fi 

############################################################################### 

# Define cyg-conda and cyg-activate to facilitate management of conda. 

alias cyg-conda=${CONDA_BASE_DIR}/Scripts/conda.exe 

cyg-activate() { 
    export CONDA_DEFAULT_ENV=$1 
    source ~/.bash_profile 
    cyg-conda info --envs 
} 

############################################################################### 

# PATH - ALl of the anaconda/miniconda path entries appear first. 

PATH= 
PATH=$PATH:$CONDA_PREFIX 
PATH=$PATH:$CONDA_PREFIX/Library/mingw-w64/bin 
PATH=$PATH:$CONDA_PREFIX/Library/usr/bin 
PATH=$PATH:$CONDA_PREFIX/Library/bin 
PATH=$PATH:$CONDA_PREFIX/Scripts 
PATH=$PATH:$HOME/scripts 
PATH=$PATH:$HOME/local/bin 
PATH=$PATH:/usr/local/bin 
PATH=$PATH:/usr/bin 

export PATH 

############################################################################### 
+0

これは素晴らしい作品です。ありがとうございました – BlueTomato

関連する問題