Anacondaがpython3をデフォルトとして設定した後、python2に戻すにはどうすればよいですか?


18

最近、15.04にAnaconda3-2.5.0-Linux-x86_64.shをインストールし、これで終わりました!

:~$ python --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

:~$ python2 --version
Python 2.7.9

:~$ python3 --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

インストールの最後の瞬間に、私はyes急いで何かを入力しましたが、これで何かをしなければならなかったと思います。(OK、私のせい、私はそれを慎重に処理すべきでしたが、今は批判ではなく、助けが必要です)。

スクリーンショット

私の知る限り、これは間違いなく他のプログラムを壊すでしょう。私は今何をしますか?


うまくいくと思います。

これはエイリアスを使用して実行できますか?

alias python=python2

しかし、私にはわかりません。


はい。使用alias python=python2
モスタファアハンガラ

私の知る限り、これは間違いなく他のプログラムを壊すでしょう。何があなたをそう思わせますか?AnacondaがPython 3をデフォルトとして設定している場合は、おそらく理由があります。
fkraiem

私はすでに2.x用に書かれたプロジェクトの1つを台無しにしており、多くのパッケージが2.xで動作するため、デフォルトを3.xに変換することは特に推奨されません!
不吉な

これは、プロのアプローチを採用し、プレインストールブートドライブのクローンを作成して、これが大きな時間の浪費になるのを防ぐことができて非常にうれしいときです。以下の私の答えをご覧ください。インストール方法がグリッチを引き起こしたと思います。もしこれが私に起こったら、私は元に戻して再試行します。合計時間は、実行可能かどうかを判断するのに1日未満です。私の場合、お分かりのように、私は検証の終わりにいるので、そもそもこれが努力の価値があるかどうかを確認するために進むことができます。それが問題を引き起こしていないことを確認するために数日かかり、研究作業は順調に進んでいます。
SDsolar

Pythonのバージョンを指定する場合、これがシステム全体に及ぼす可能性のあるリップル効果を正確に知っていることを確認してください。プレイしているだけでない限り、デフォルトのwhich pythonシェバン結果のターゲットを変更する場合、完全な検証プロセスが本当に必要になります。いくつかのユーティリティを書き換える必要があるというコーナーに自分自身がペイントされていることを後で発見するのを防ぐには、ほんの少し時間がかかります。最善の方法は、多くの時間が手に入らない限り、デフォルトのままで作業を続けることです。
SDsolar

回答:


18

VMでインストールを行ったところ、次のことが起こりました。

  1. インストーラーはインストール場所を尋ねます。デフォルトは/home/myuser/anaconda3です。
  2. 最後に尋ねられます

    Python 3.5.1 :: Continuum Analytics, Inc.
    creating default environment...
    installation finished.
    Do you wish the installer to prepend the Anaconda3 install location
    to PATH in your /home/myuser/.bashrc ? [yes|no]
    [no] >>> yes
    
    Prepending PATH=/home/myuser/anaconda3/bin to PATH in /home/myuser/.bashrc
    A backup will be made to: /home/myuser/.bashrc-anaconda3.bak

古い動作を復元するには、ホームディレクトリに移動して、

mv .bashrc-anaconda3.bak .bashrc

次に、新しいシェルを開始します。

あなたが示唆するように、あなたは可能ですがalias python=python2、私はそれが少し奇妙だと思います。私は...するだろう

  1. オリジナルを復元 .bashrc
  2. 作成(存在しない場合) ~/bin
  3. リンク ln -s ~/anaconda3/bin/python3 ~/bin/python3
  4. [前に付加を$HOME/binする$PATH](万一、すでにによってデフォルトで設定され~/.profile
  5. 再ログイン。

そうpython3すれば、呼び出しはAnacondaからの呼び出しを開始します。


重要な点は、オリジナル/usr/bin/pythonがまだ存在し、まだを指していることpython2.7です。python->python3パスに含まれる場合の影響は、特定のスクリプトがどのように呼び出されるかによって異なります。

#!/usr/bin/pythonおそらくUbuntuに同梱されているすべての実行可能ファイルにあるようなシバンが使用されている場合、何も変わりません。一方、より良いポータビリティの#!/usr/bin/env pythonために、時々python3.5呼び出されます。


3
「4. $ HOME / binを$ PATHに追加する」..すでにデフォルトで行われています~/.profile-の作成後に再ログインが必要です~/bin
ムル

@muruそれは本当です、ありがとう。答えに追加されました。
ネフェンテ

大丈夫、うまくいきました、ありがとう!これを通知するために、私は以前にPython 3.4.3もインストールしていたこと(そしてpipとpip3は両方とも関連付けられていた)、今では2.7、3.4、3.5を持っています。次に、pipを再インストールして3.5を指すようにします!
不吉な

Anacondaにはcondaと呼ばれる独自のパッケージマネージャーが付属しています。また、仮想環境も管理します。pipの代わりにそれを使用してパッケージをインストールします。
ネフェンテ


7

ここで良い答え:https : //stackoverflow.com/questions/24405561/how-to-install-2-anacondas-python-2-7-and-3-4-on-mac-os-10-9

conda create -n python2 python=2.7 anaconda

次に、切り替えるには:

source activate python2

これが必要な場合は、さらに深い問題が発生する可能性があります。システムが重要な場合は、Python依存のコマンドやユーティリティを完全に検証してください。公正警告。
SDsolar

3

誰かがPythonのデフォルトバージョンをめちゃくちゃにした後(デフォルトをanacondaまたはpython 3に変更することで)2.7に戻し、最終的に機能しないソフトウェアになっている場合は、このリンクに従ってください:デフォルトを変更する手順とリンクしてくださいPythonバージョン。


システムの変更が失敗した場合は、ロールバックできることを確認してください。計画どおりに行かない場合は、主要な変更をすぐに元に戻すことができるように、適切なシステムイメージのバックアップがあることを確認してください。プロフェッショナルだと思う。あなたがアマチュアのテクニックを使うなら、あなたはプロの結果を期待することはできません。
SDsolar

1

これは私にとってはうまくいきましたが、Minicondaでは、Anacondaでもうまくいくはずですが、間違っている場合は修正してください。

最初に$ PATH変数を取得します。

echo $PATH

おそらく次のようになります(他のすべての前のミニコンダパス):

/home/your_user/miniconda3/bin:$PATH

そのパスを〜/ .bashrcファイルの最後にコピーしますが、次のようにパスの先頭ではなく末尾にMinicondaを使用します。

export PATH="$PATH:/home/your_user/miniconda3/bin"

システムは、miniconda3 / binフォルダーの前の$ PATH変数の先頭でプログラムを探します。

Pythonのような以前のプログラムのバージョンを復元する必要があります。

以降Conda 4.4、彼らはコード変更〜/ .bashrcのに追加します。ここで、同じことを実現するために、〜/ .bashrcを編集し、下の行をコメントアウトして、すべての端末でベースレイヤー(ベース環境)がアクティブにならないようにします。新しい追加のその他の部分に触れる必要はありません。どんな意味CONDA_CHANGEPS1=falseがあるのかはわかりませんが、これまでのところ何の問題にも遭遇していません。

   # CONDA_CHANGEPS1=false conda activate base

あなたはもうパスにcondaフォルダは表示されませんしながら、condaコマンドはまだ罰金を実行して、あなたの元になるpythonpython3pipenvのコマンドも同様になります。


あなたが正しいと思うので、賛成票を投じてください。これはデータベースに保存しておくと便利です。ただし、関連するソフトウェアのバージョン番号について、もう少し具体的になるようにお願いできますか?
SDsolar

ありがとう、私はプログラムのバージョンが重要だとは本当に思っていません。これは常に機能するはずです。ただし、当時のインストーラーは次のバージョンでした:Miniconda3 4.3.14。それは役立ちますか?
pedrodcb

0

これが私の答えであり、それはあなたがあなた自身のシステムに対して行ったことに対する実際の具体的な答えかもしれませんし、そうでないかもしれません。

しかし、私は同じような状況にあり、まったく同じ懸念を抱いていました。

Ubuntu 16.04 LTSとPython 2.7.12を使用していますが、最近インストールしたのはAnacondaです。

そのため、コマンドラインに移動して入力pythonすると、Python2インストールに移動します。

このシーケンスによって確認されました:

$which python
/usr/bin/python     <  Catch-all for max compatibility
$python
Python 2.7.12 . . etc

したがって、私の場合、anacondaデフォルトのPython2シェバンで問題は発生しません。

最終的に、それが問題です。

システムに問い合わせるwhich pythonと、コマンドラインスタイルのPythonプログラムの最初の行で使用する正しい文字列であると信頼できます。

私の状況では、すべて同じPythonコマンドラインスクリプトファイルが引き続き正常に実行されます。

私はPythonを3互換モードで書く傾向があります。印刷ステートメントを括弧で囲むなど。しかし、私は、システムに対する重大な変更に積極的に抵抗しています。これにより、激しい戦いのPython 2プログラムに不具合が発生する可能性があります。Python 3は素晴らしく聞こえますが、私のニーズには不必要です。Python 2は素晴らしい言語です。

私のコンピューティング環境では、最初に戻って使用した場所を把握する必要があるため、時間をかけずに正しく動作するように調整された過去のプロセスに戻って再設計することはできません。


結論:anaconda将来の使用のためにインストールするとき、速度のバンプも問題もありませんでした。


それが私が現在進行中のポイントです...過去のすべてのソフトウェアの再認証を完了しました。


次のステップは、パッケージで約束されているクールなものを実際に使用することです。


だから、私は他に単にインストールするだけでanaconda、あなたの状況により多くのものが必要だと疑わなければなりません。

私の経験から、それはまったく問題ではありません。


参考までに、太陽動力学に取り組んでいる完全な科学ワークステーションがあります。短命と衛星の相互作用についても。動作しなければなりません。だから、私はこのすべてのワントリックポニーではありません。一度に1つずつインストールしてから、その前のすべてが機能することを確認します。それから次へ進みます。SciPy、Matplotlabなど(プロットの私の好みはgnuplotです)。したがって、私はこの回答を、学術研究環境で稼働中の24時間365日稼働のシステムからのデータポイントとして提出していることを理解してください。これはテスト環境ではなく、毎日の運用環境です。
SDsolar

また、上記のコメントで言及したように、THINK PROFESSIONAL。これらのシステムは、世界中の非常に高いレベルの研究者によって使用されています。->システムを大幅にアップグレードする前に、ブートドライブにクローンがあることを確認してください。ddコマンドは、迅速かつ簡単で、SATA接続が容易です。システムを保護することを避ける理由はありません。各ステップで、発生する可能性のあるすべての変更を元に戻すことができることに注意してください。ハードリベットはあなたの時間よりもはるかに安価です。(あなたがそれが真実だと思わない限り)。助成金と時間の不足は十分なインセンティブになります。
SDsolar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.