最近、pythonのanacondaバージョンをインストールしました。ターミナルにpython
と入力すると、デフォルトのディストリビューションではなく、anoncondaディストリビューションが開きます。 Linux(ubuntu 12.04)でコマンドpython
のデフォルトバージョンを使用するにはどうすればよいですか?
anacondaは.bashrc
にパスを追加するため、最初に検出されます。デフォルトのpython to .bashrc
にパスを追加するか、そうでない場合はanacondaへのパスを削除できます使いたくない.
Bashでフルパス/usr/bin/python
を使用して、デフォルトのpythonインタープリターを使用することもできます。
.bashrc
ファイルをそのままにしておくと、python
を使用して実行するコマンドはanacondaインタープリターを使用します。必要に応じて、各インタープリターにalias
を使用することもできます。
export PATH=$HOME/anaconda/bin:$PATH
ファイルに.bashrc
のようなものが表示されます。
したがって、基本的に、日常のメインインタープリタとしてanacondaを使用する場合は、デフォルトのフルパスを使用しますpythonまたはalias
を作成します。 export PATH=...
。bashrc
から、anacondaへのフルパスを使用してpythonインタープリター。
これまでのすべての提案を試したので、Piotr Dobrogostが示唆しているように、〜/ .bashrcのexportステートメントを変更することは、次のことを考慮した最良のオプションだと思います。
そのため、〜/ .bashrcではなく
# added by Anaconda3 4.3.0 installer
export PATH="/home/user/anaconda3/bin:$PATH"
使用するだろう
export PATH="$PATH:/home/user/anaconda3/bin"
私は同じ問題に直面し、あなたはあなたのbashrcに次のGoをすることができます、あなたは同様の種類の行を見つけるでしょう
export PATH=~/anaconda3/bin:$PATH
あなたがすることはコメントアウトし、代わりに入力することです
alias pyconda='~/anaconda3/bin/python3'
またはあなたのパスが何であれ。これは私のために働いた
python2
とpython2.7
の両方のディレクトリには、python
、/home/username/anaconda/bin/
、/usr/bin/
のショートカットがあります。そのため、1つのフォルダーからそれらのいずれかを削除し、それを他のフォルダーに使用できます。つまり、anacondaディレクトリからpython2
ショートカットを削除すると、python anacondaバージョンとpython2
がターミナルのデフォルトバージョンになります。
export=.../anaconda3/bin:$PATH
を削除しても、PATH
には.../anaconda3/envs/py36/bin
(anacondaの仮想環境)があり、シェルは引き続きanaconda pythonを使用していることがわかりました。
だから私はexport PATH=/usr/bin:$PATH
(/usr/bin
はシステムpythonが存在する場所です)。 thersはすでに/usr/bin
in PATH
ですが、anacondaのパスの前に検索されます。その後、python
、python3.6
をキー入力すると、シェルはシステムpythonを使用します、pip
、pip3
....
上記のようなエイリアスを使用してanacondaに戻るか、コメントexport PATH=/usr/bin:$PATH
を使用してデフォルトで再びanacondaに戻ります。
クロスプラットフォームパッケージをビルドするためにAnacondaを控えめに使用していますが、Pythonの毎日のドライバーとして使用したくありません。 Anaconda、Ruby、およびNodeプロジェクトに採用したのは、環境のサンドボックス化を使用することです。これは、特に必要になるまで、機能の背後にある機能をパスから隠します。これらの2つのgithubリポジトリからそれについて:
https://github.com/benvan/sandboxd
https://github.com/maximbaz/dotfiles
次のようなサンドボックス関数のファイルがあります。
#!/bin/zsh
# Based on
# https://github.com/maximbaz/dotfiles/.zsh/sandboxd.zsh
# which was originally adapted from:
# https://github.vom/benvan/sandboxd
# Start with an empty list of all sandbox cmd:hook pairs
sandbox_hooks=()
# deletes all hooks associated with cmd
function sandbox_delete_hooks() {
local cmd=$1
for i in "${sandbox_hooks[@]}";
do
if [[ $i == "${cmd}:"* ]]; then
local hook=$(echo $i | sed "s/.*://")
unset -f "$hook"
fi
done
}
# prepares environment and removes hooks
function sandbox() {
local cmd=$1
# NOTE: Use original grep, because aliased grep is using color
if [[ "$(type $cmd | \grep -o function)" = "function" ]]; then
(>&2 echo "Lazy-loading '$cmd' for the first time...")
sandbox_delete_hooks $cmd
sandbox_init_$cmd
else
(>&2 echo "sandbox '$cmd' not found.\nIs 'sandbox_init_$cmd() { ... }' defined and 'sandbox_hook $cmd $cmd' called?")
return 1
fi
}
function sandbox_hook() {
local cmd=$1
local hook=$2
#echo "Creating hook ($2) for cmd ($1)"
sandbox_hooks+=("${cmd}:${hook}")
eval "$hook(){ sandbox $cmd; $hook \$@ }"
}
私の.zshrc
サンドボックス化された関数を作成します。
sandbox_hook conda conda
このコマンドは、通常のconda
実行可能ファイルを次のように変換します。
conda () {
sandbox conda
conda $@
}
このテクニックを使用すると、多くのラッパースクリプト(例:nvm
、rvm
など)を使用するとシェルの起動時間が遅くなるため、シェルの読み込み時間が短縮されます。
また、Anacondaがpython3実行可能ファイルをデフォルトでpython
としてインストールしたため、多くのレガシーpythonスクリプトが壊れますが、それは別の問題です。このようにサンドボックスを使用すると、システムのデフォルトの代わりにAnacondaのpythonを使用していることを明示的に認識しています。
Anaconda 3は、.bashrcに単純な行以上のものを追加します。ただし、元の.bashrcファイルも.bashrc-anaconda3.bakにバックアップされるため、私の解決策は2つを交換することでした。