記事一覧表示

condaからemacsを入れたらcondaが壊れた話

condaからemacsを入れたら、以下のようなエラーが…

$ conda
Traceback (most recent call last):
  File "/opt/conda/bin/conda", line 7, in <module>
    from conda.cli import main
ModuleNotFoundError: No module named 'conda'

調べてみるemacsを入れる際にpythonが勝手にアップデートされて、使っているcondaとの整合性が無くなるんだとか…。
勝手に揃えてくれれば良いのにな^_^;
なのでemacsを入れる前に、condaコマンドとpythonを予めアップデートさせないといけないらしい。
まずは、emacsによってアップデートされた後のpythonのバージョンを調べる。
調べ方は conda install を打って、必要なパッケージが出てくるので、その中にpythonがあるかを確認。 もちろん、パッケージが確認できたら Proceed ([y]/n)?n で中断する。

$ conda install -c conda-forge emacs
        ︙
The following packages will be downloaded:
        ︙
    python-3.8.5               |h4d41432_2_cpython        71.0 MB  conda-forge
        ︙
Proceed ([y]/n)? nを入力後にEnter

次にcondaのバージョンをアップデート後のpython(3.8.5)に合わせないといけないので、そのバージョンを調べる。
調べ方は公式のcondaパッケージ一覧から、好きなのを選ぶ。今回はconda-forge / conda 4.8.3を選択してみた。
conda-forge / conda 4.8.3のページから Files の項目をクリックすると、conda-forge / condaのパッケージ一覧が見られるので、パッケージ名からconda-forge / condaがアップデート後のpythonに対応しているかを調べる。
今回はアップデート後のpythonのバージョンが3.8系統なので、パッケージ名に py38 が含まれているかをチェックすると py38 が含まれているパッケージがあるので、condaのバージョンは4.8.3を指定すれば良さそうだと分かる。

今のcondaのバージョンを調べると以下のようになる。

$ conda list | grep conda
# packages in environment at /home/ユーザ名/anaconda3:
           ︙
conda                     4.5.11                   py37_0
           ︙

今のcondaのバージョンはpython3.7系統に対応する4.5.11らしい。
なのでcondaを python=3.8.5 に合わせた4.8.3に上げる。

$ conda install conda=4.8.3=py38_0 python=3.8.5

これでemacsが無事に入った。