しょっちゅう使っているAnaconda. ライセンス関係でとある向きにはminicondaを使ってます

メモ

このanaconda、python環境に移行には「source activate <環境名>」としている. 本来なら「conda activate <環境名>」なのだが、
「.bashrc」をあまり書き換えたくないからそうしている.
っが最近、「source deactivate」が効かない事態が発生している。

回避策として

--- /apps/pyenv/versions/anaconda3-2022.05/bin/conda.orig       2022-10-10 01:13:55.682461147 +0900
+++ /apps/pyenv/versions/anaconda3-2022.05/bin/conda    2022-10-10 01:22:53.014468678 +0900
@@ -1,6 +1,4 @@
-#!/bin/sh
-'''exec' "/apps/pyenv/versions/anaconda3-2022.05/bin/python" "$0" "$@"
-' '''
+#!/apps/pyenv/versions/anaconda3-2022.05/bin/python
 # -*- coding: utf-8 -*-
 import sys
 # Before any more imports, leave cwd out of sys.path for internal 'conda shell.*' commands.

--- /apps/pyenv/versions/anaconda3-2022.05/bin/conda-env.orig   2022-10-10 01:13:55.681461142 +0900
+++ /apps/pyenv/versions/anaconda3-2022.05/bin/conda-env        2022-10-10 01:22:53.014468678 +0900
@@ -1,6 +1,4 @@
-#!/bin/sh
-'''exec' "/apps/pyenv/versions/anaconda3-2022.05/bin/python" "$0" "$@"
-' '''
+#!/apps/pyenv/versions/anaconda3-2022.05/bin/python
 # -*- coding: utf-8 -*-
 import sys

かなと

参照先を変える

大抵は「conda info」で表示されるURLを使ってパッケージがインストールされる.

(base) saber@ubuntu:~$ conda info
 
     active environment : base
    active env location : /home/saber/anaconda3
            shell level : 1
       user config file : /home/saber/.condarc
 populated config files :
          conda version : 22.9.0
    conda-build version : 3.22.0
         python version : 3.9.13.final.0
       virtual packages : __cuda=12.0=0
                          __linux=5.15.0=0
                          __glibc=2.31=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /home/saber/anaconda3  (writable)
      conda av data dir : /home/saber/anaconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/saber/anaconda3/pkgs
                          /home/saber/.conda/pkgs
       envs directories : /home/saber/anaconda3/envs
                          /home/saber/.conda/envs
               platform : linux-64
             user-agent : conda/22.9.0 requests/2.28.1 CPython/3.9.13 Linux/5.15.0-53-generic ubuntu/20.04.5 glibc/2.31
                UID:GID : 1001:1001
             netrc file : None
           offline mode : False
 
(base) saber@ubuntu:~$

独自のURLを加えるなら「user config file」で示される「/home/saber/.condarc」を修正する

(base) saber@ubuntu:~$ cat .condarc
channels:
  - defaults
default_channels:
  - http://c/anaconda/conda.anaconda.org/bioconda/
  - http://c/anaconda/conda.anaconda.org/pytorch/
  - http://c/anaconda/repo.anaconda.com/pkgs/free/
  - http://c/anaconda/repo.anaconda.com/pkgs/main/
  - http://c/anaconda/repo.anaconda.com/pkgs/mro
  - http://c/anaconda/repo.anaconda.com/pkgs/pro
use_only_tar_bz2: True
(base) saber@ubuntu:~$

とか「use_only_tar_bz2: True」をいれないと最近の「.conda」も採用してしまう

Anaconda2

Anaconda3の前身Anaconda2を使っている場合、各channnelのrepodataは「repodata.json.bz2」とbz2形式だと読めないようで「repodata.json」の形式も用意する必要があるみたい.

conda update conda

condaで環境を作ると

==> WARNING: A newer version of conda exists. <==
  current version: 22.9.0
  latest version: 23.1.0
 
Please update conda by running
 
    $ conda update -n base -c defaults conda

とか言われる.
っでご指示に従い「conda update -n base -c defaults conda」としても治らない時がある.
そんな時は

conda install -n base conda=23.1.0

で退治できる.

InvalidVersionSpecError: Invalid version spec: =2.7

anaconda3-5.3.1を使っていてこのような表示が現れて、環境が作れなくなった...
解消方法は
https://github.com/conda/conda/issues/10618とかに載っている....

現象の再現を行ってみる

[root@centos7 ~]# git clone https://github.com/yyuu/pyenv.git /apps/pyenv
[root@centos7 ~]# export PYENV_ROOT=/apps/pyenv
[root@centos7 ~]# export PATH=$PYENV_ROOT/bin:$PATH
 
[root@centos7 ~]# pyenv install anaconda3-5.3.1
[root@centos7 ~]# pyenv global anaconda3-5.3.1
[root@centos7 ~]# export PATH=$PYENV_ROOT/versions/anaconda3-5.3.1/bin/:$PATH
 
[root@centos7 ~]# conda update conda
Solving environment: failed
 
InvalidVersionSpecError: Invalid version spec: =2.7
 
[root@centos7 ~]#

とエラーになる....一応「conda create -n py310 python=3.10」とかは動くけど、DeepEMhancerの構築では失敗している.

[root@centos7 ~]# cd /apps/deepEMhancer/
[root@centos7 deepEMhancer]# conda env create -f deepEMhancer_env.yml  -n deepEMhancer_env
Solving environment: failed
 
ResolvePackageNotFound:
  - joblib=1.3
  - hdf5=1.14
  - h5py=3.9
  - requests=2.31
  - cudnn=8.8
 
[root@centos7 deepEMhancer]#

ってな感じで. 上記の問題は古いcondaにあるのかなと思いまずはconda自身のupdateを試みたら先ほどの次第であった.
っで解消法ですが、「/apps/pyenv/versions/anaconda3-5.3.1/lib/python3.7/site-packages/conda/models/version.py」を下記のように修正します

--- /apps/pyenv/versions/anaconda3-5.3.1/lib/python3.7/site-packages/conda/models/version.py.orig     2018-08-22 00:26:29.000000000 +0900
+++ /apps/pyenv/versions/anaconda3-5.3.1/lib/python3.7/site-packages/conda/models/version.py  2023-07-25 03:08:02.046608618 +0900
@@ -393,9 +393,9 @@
 # followed by a version string. It rejects expressions like
 # '<= 1.2' (space after operator), '<>1.2' (unknown operator),
 # and '<=!1.2' (nonsensical operator).
-version_relation_re = re.compile(r'(==|!=|<=|>=|<|>)(?![=<>!])(\S+)$')
+version_relation_re = re.compile(r'(==|!=|<=|>=|<|>|=)(?![=<>!])(\S+)$')
 regex_split_re = re.compile(r'.*[()|,^$]')
-opdict = {'==': op.__eq__, '!=': op.__ne__, '<=': op.__le__,
+opdict = {'==': op.__eq__, '!=': op.__ne__, '<=': op.__le__, '=': lambda x, y: x.startswith(y),
           '>=': op.__ge__, '<': op.__lt__, '>': op.__gt__}

これで行けるみたい.

[root@centos7 ~]# conda update conda
[root@centos7 ~]# conda list |grep conda
# packages in environment at /apps/pyenv/versions/anaconda3-5.3.1:
anaconda                  5.3.1                    py37_0
anaconda-client           1.7.2                    py37_0
anaconda-navigator        1.9.2                    py37_0
anaconda-project          0.8.2                    py37_0
conda                     23.5.2          py310h06a4308_0
conda-build               3.15.1                   py37_0
conda-env                 2.6.0                         1
conda-package-handling    2.1.0           py310h06a4308_0
conda-package-streaming   0.8.0           py310h06a4308_0
[root@centos7 ~]#

っで、これで先ほど修正したファイルが消えます. そうゆうものらしい.

これでDeepEMhancerの構築も成功するみたい. 成功した.

最新の60件
2025-06-18 2025-06-17 2025-06-15 2025-06-14 2025-06-11 2025-06-09 2025-06-08 2025-06-07 2025-06-05 2025-06-02 2025-06-01 2025-05-31 2025-05-30 2025-05-25 2025-05-22 2025-05-21 2025-05-20 2025-05-18 2025-05-17 2025-05-14 2025-05-13 2025-05-12 2025-05-11 2025-05-08 2025-05-07 2025-05-06 2025-05-05 2025-05-04 2025-05-03 2025-04-27 2025-04-26 2025-04-25 2025-04-24

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-05-18 (日) 15:13:48