Anaconda3 5.2.0セットアップ

Anaconda3が気づけば5.2になっているので入れ直す。
また、ユーザ単位ではなくマシンにインストールする。

Install

Modify Registry

Anaconda3の仮想環境にファイルを置く場合パス名が長くなる傾向があり、Windows標準の文字数制限を超過する可能性があるため
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem.LongPathsEnabled を 1 にする。

Set-ItemProperty -Path "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1;

Execute Installer

https://repo.anaconda.com/archive/Anaconda3-5.2.0-Windows-x86_64.exe
よりインストーラを入手、実行。

@SET ECHO OFF

REM マシンにインストールし、システムの環境変数PATHに追加、レジストリに.pyをPython.exeに関連付けるよう設定する。
REM (管理者権限必要)
Anaconda3-5.2.0-Windows-x86_64.exe InstallationType=AllUsers /AddToPath=1 /RegisterPython=1 /S

REM 個人にインストールする場合にはこちら。
REM Anaconda3-5.2.0-Windows-x86_64.exe /InstallationType=JustMe /AddToPath=1 /S

Clone VirtualEnv

システムにインストールした場合、C:\Program Files\Anaconda3にbaseという名前で標準の仮想環境が設定されている。
そのため自分用が自由に変更できる仮想環境をUSERPROFILE配下に構築する。
(ユーザ権限で作成すると標準でUSERPROFILE配下に作られる)

@SET ECHO OFF
REM Anaconda3と同じバージョンを使う場合

SET NEW_VIRTUAL_ENV=myroot
SET SOURCE_VIRTUAL_ENV=base
conda create -n %NEW_VIRTUAL_ENV% --clone %SOURCE_VIRTUAL_ENV%

…と思いきや、Anaconda3 5.2.0でbaseをクローンする場合、エラーが起きる。
https://stackoverflow.com/questions/51526700/assertionerror-when-cloning-anaconda-base-environment

...
anaconda-5.2.0       |         | ############################################################################## | 100%

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "C:\ProgramData\Anaconda3\lib\site-packages\conda\exceptions.py", line 819, in __call__
        return func(*args, **kwargs)
      File "C:\ProgramData\Anaconda3\lib\site-packages\conda\cli\main.py", line 78, in _main
        exit_code = do_call(args, p)
      File "C:\ProgramData\Anaconda3\lib\site-packages\conda\cli\conda_argparse.py", line 77, in do_call
        exit_code = getattr(module, func_name)(args, parser)
      File "C:\ProgramData\Anaconda3\lib\site-packages\conda\cli\main_create.py", line 11, in execute
        install(args, parser, 'create')
      File "C:\ProgramData\Anaconda3\lib\site-packages\conda\cli\install.py", line 211, in install
        clone(args.clone, prefix, json=context.json, quiet=context.quiet, index_args=index_args)
      File "C:\ProgramData\Anaconda3\lib\site-packages\conda\cli\install.py", line 72, in clone
        index_args=index_args)
      File "C:\ProgramData\Anaconda3\lib\site-packages\conda\misc.py", line 277, in clone_env
        force_extract=False, index_args=index_args)
      File "C:\ProgramData\Anaconda3\lib\site-packages\conda\misc.py", line 78, in explicit
        assert not any(spec_pcrec[1] is None for spec_pcrec in specs_pcrecs)
    AssertionError

`$ C:\ProgramData\Anaconda3\Scripts\conda create -n myroot --clone base`
...

どうやらデバッグしてみると、conda create –cloneするとヒストリーファイルを更新するらしいが
このファイルがシステムインストール時の権限(=管理者の権限)で管理されているため
一般ユーザで更新できず失敗しているようだ。

DEBUG conda.base.context:root_writable(369): [Errno 13] Permission denied: 'C:\\ProgramData\\Anaconda3\\conda-meta\\history'
DEBUG conda.base.context:root_writable(369): [Errno 13] Permission denied: 'C:\\ProgramData\\Anaconda3\\conda-meta\\history'

なので、自分の環境に、同じバージョンのPython仮想環境を作る。

FOR /f "usebackq delims=" %%r in (`python -c "import re; import sys; print(re.match(r'^(\d+\.\d+\.\d+)', sys.version).group(0))"`) do
    SET PYTHON_VER=%%r
conda create -n %NEW_VIRTUAL_ENV% python=%%PYTHON_VER

異なるバージョンを使いたい場合には、”python=x.y.z”と指定する。

SET PYTHON_VER=3.6.5
conda create -n %NEW_VIRTUAL_ENV% python=%PYTHON_VER%

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です