Windowsでの環境構築ってめんどくさいね

前書き

この本を買ったので早速環境構築をすることにしました。しかし、それが苦難の道のりでした...。

つくりながら学ぶ! PyTorchによる発展ディープラーニング

つくりながら学ぶ! PyTorchによる発展ディープラーニング

※今回のお話は有益な情報があまりないので暇な人だけ見てください

環境構築

OS: Winodows 10
Python: 3.7.3
conda: 4.7.10

conda

まず考えたのは、Anacondaはインストール済みだったのでconda installしよう、ということでした。公式サイトへ行き、提示されたコマンドconda install pytorch-cpu torchvision-cpu -c pytorchを実行しようとしました。(CUDAは本に合わせてインストールしていません)すると、upgradeを実行してくれといわれたため、先にconda update -n base condaを実行しました。その後conda info -eを実行すると、

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

    Traceback (most recent call last):
      File "C:\Users\under\Anaconda3\lib\site-packages\conda\exceptions.py", line 1062, in __call__
        return func(*args, **kwargs)
      File "C:\Users\under\Anaconda3\lib\site-packages\conda\cli\main.py", line 84, in _main
        exit_code = do_call(args, p)
      File "C:\Users\under\Anaconda3\lib\site-packages\conda\cli\conda_argparse.py", line 80, in do_call
        module = import_module(relative_mod, __name__.rsplit('.', 1)[0])
      File "C:\Users\under\Anaconda3\lib\importlib\__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
      File "<frozen importlib._bootstrap>", line 983, in _find_and_load
      File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 728, in exec_module
      File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
      File "C:\Users\under\Anaconda3\lib\site-packages\conda\cli\main_info.py", line 19, in <module>
        from ..core.index import _supplement_index_with_system
      File "C:\Users\under\Anaconda3\lib\site-packages\conda\core\index.py", line 9, in <module>
        from .package_cache_data import PackageCacheData
      File "C:\Users\under\Anaconda3\lib\site-packages\conda\core\package_cache_data.py", line 15, in <module>
        from conda_package_handling.api import InvalidArchiveError
      File "C:\Users\under\Anaconda3\lib\site-packages\conda_package_handling\api.py", line 3, in <module>
        from libarchive.exception import ArchiveError as _LibarchiveArchiveError
      File "C:\Users\under\Anaconda3\lib\site-packages\libarchive\__init__.py", line 1, in <module>
        from .entry import ArchiveEntry
      File "C:\Users\under\Anaconda3\lib\site-packages\libarchive\entry.py", line 6, in <module>
        from . import ffi
      File "C:\Users\under\Anaconda3\lib\site-packages\libarchive\ffi.py", line 48, in <module>
        libarchive = ctypes.cdll.LoadLibrary(libarchive_path)
      File "C:\Users\under\Anaconda3\lib\ctypes\__init__.py", line 434, in LoadLibrary
        return self._dlltype(name)
      File "C:\Users\under\Anaconda3\lib\ctypes\__init__.py", line 356, in __init__
        self._handle = _dlopen(self._name, mode)
    TypeError: LoadLibrary() argument 1 must be str, not None

このようなエラーがでてconda info, conda listが使えなくなりました。 ここを見たのですが、結局どのように修正するかよくわかりませんでした...(わかる方いたら教えてください)

pip

次に、TwitterのTL上で

このようなアドバイスをもらったのでpipをつかおうと思いました。やり方はこの記事を参考にしました。


pip3 install _を行うとSSLのエラーが起きましたが、これはOpenSSLを入れたら解決しました。

その後仮想環境はたてられたのですが、torchvisionをインストールする際に問題が起きます。 pip3 install https://download.pytorch.org/whl/cpu/torchvision-0.3.0-cp37- cp37m-win_amd64.whlを実行すると

  ERROR: Could not find a version that satisfies the requirement torch>=1.1.0 (from torchvision==0.3.0) (from versions: 0.1.2, 0.1.2.post1, 0.1.2.post2)
ERROR: No matching distribution found for torch>=1.1.0 (from torchvision==0.3.0)

このようなエラーがでてしまいました。torchとtorchvision別々にインストールすると、

>>> import torchvision
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\under\app\pytorch_practice\venv\lib\site-packages\torchvision\__init__.py", line 1, in <module>
    from torchvision import models
  File "C:\Users\under\app\pytorch_practice\venv\lib\site-packages\torchvision\models\__init__.py", line 11, in <module>
    from . import detection
  File "C:\Users\under\app\pytorch_practice\venv\lib\site-packages\torchvision\models\detection\__init__.py", line 1, in <module>
    from .faster_rcnn import *
  File "C:\Users\under\app\pytorch_practice\venv\lib\site-packages\torchvision\models\detection\faster_rcnn.py", line 7, in <module>
    from torchvision.ops import misc as misc_nn_ops
  File "C:\Users\under\app\pytorch_practice\venv\lib\site-packages\torchvision\ops\__init__.py", line 1, in <module>
    from .boxes import nms, box_iou
  File "C:\Users\under\app\pytorch_practice\venv\lib\site-packages\torchvision\ops\boxes.py", line 2, in <module>
    from torchvision import _C
ImportError: DLL load failed: 指定されたモジュールが見つかりません。

torchvisionのインストールの際にエラーが起きました。競合が起きてそうでしたが詳細がよくわかりませんでした...。

結局

google colab上で!pip install torch torchvisionをするとインストールできてimportもうまくいきました。今までの苦労はいったい....。とはいえ今後はdockerで環境構築をしてみようと思います。