はじめに
簡単な方法で元のバージョンに戻すことができます.
だからぜひいいね
してください.
結論だけさっさと知りたい方は,下記の穢土転生の術まで読み飛ばしてください.
悲しい出来事(この記事を書くきっかけになった出来事)
前置き
趣味で作成しているPython
のライブラリがあるのですが,そのライブラリのプロファイリングをしようとしたときの話です.
こちらの記事にも書いてあるとおり,cProfileV
という便利なものがあるそうです.
記事内ではpip
コマンドでインストールするように書かれていましたが,Anaconda
環境なので、Anaconda
用に配布されてないかな〜と思ったところ,ありました.
インストール
以下,ログの一部です
The following packages will be UPDATED:
ca-certificates conda-forge::ca-certificates-2018.11.~ --> pkgs/main::ca-certificates-2019.1.23-0
pkginfo 1.4.2-py37_1 --> 1.5.0.1-py27_0
setuptools 40.6.3-py37_0 --> 40.7.3-py27_0
tqdm pkgs/main/linux-64::tqdm-4.28.1-py37h~ --> pkgs/main/noarch::tqdm-4.29.1-py_0
The following packages will be SUPERSEDED by a higher-priority channel:
certifi conda-forge::certifi-2018.11.29-py37_~ --> pkgs/main::certifi-2018.11.29-py27_0
pip pkgs/main::pip-18.1-py37_0 --> pkgs/free::pip-7.1.0-py27_0
requests pkgs/main::requests-2.21.0-py37_0 --> pkgs/free::requests-2.14.2-py27_0
The following packages will be DOWNGRADED:
backports 1.0-py37_1 --> 1.0-py27_1
backports.shutil_~ 1.0.0-py37_2 --> 1.0.0-py27_2
python 3.7.1-h0371630_7 --> 2.7.15-h9bab390_6
Proceed ([y]/n)? y
思いっきりy
と押してますが、Python2.7 までダウングレードしています.
押してから気づきました(妙に時間がかかると思ったわけです...)
コンソールも悲しみですね...
$ python
Python 2.7.15 |Anaconda, Inc.| (default, Dec 14 2018, 19:04:19)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
穢土転生の術
Step1. 過去の環境でのバージョンを確認
下記のコマンドで,過去に自分がどのパッケージのどのバージョンを利用していたか,確認できます.
$ conda list --revisions
〜〜〜〜〜〜〜〜省略〜〜〜〜〜〜〜〜
2019-02-06 21:40:33 (rev 2)
+deap-1.2.2 (conda-forge)
2019-02-17 20:52:26 (rev 3)
backports {1.0 -> 1.0}
backports.shutil_get_terminal_size {1.0.0 -> 1.0.0}
ca-certificates {2018.11.29 (conda-forge) -> 2019.1.23}
certifi {2018.11.29 (conda-forge) -> 2018.11.29}
pip {18.1 -> 7.1.0}
pkginfo {1.4.2 -> 1.5.0.1}
python {3.7.1 -> 2.7.15}
requests {2.21.0 -> 2.14.2}
setuptools {40.6.3 -> 40.7.3}
tqdm {4.28.1 -> 4.29.1}
〜〜〜〜〜〜〜〜省略〜〜〜〜〜〜〜〜
読み方ですが,rev2
がさっきまで使ってたやつ,rev3
がやっちまったあとのバージョンです.
(Python本体
以外にも、悲しいダウングレード攻撃の餌食になっているパッケージがが多々いますね...)
Step2. 蘇らせる
$ conda install --revision [revision number]
これだけです.
今回の場合だと、
$ conda install --revision 2
ですね!
conda-forge
からのインストールが含まれている場合には、
$ conda install --revision 2 -c conda-forge
を代わりに実行しましょう.
生存確認
$ python
Python 3.7.1 (default, Dec 14 2018, 19:28:38)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
自分のような愚か者のために,こんな簡単なコマンド1つで戻せるなんて!
やっぱAnaconda
は神.