(py37) d:\VisualStudio2017\Python3.5_GPU>pip install gym[atari]
Requirement already satisfied: gym[atari] in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (0.19.0)
Requirement already satisfied: numpy>=1.18.0 in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (from gym[atari]) (1.21.6)
Collecting cloudpickle<1.7.0,>=1.2.0
Using cached cloudpickle-1.6.0-py3-none-any.whl (23 kB)
Collecting atari-py==0.2.6
Using cached atari_py-0.2.6-cp37-cp37m-win_amd64.whl (1.8 MB)
Requirement already satisfied: opencv-python>=3. in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (from gym[atari]) (4.6.0.66)
Requirement already satisfied: six in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (from atari-py==0.2.6->gym[atari]) (1.16.0)
WARNING: The candidate selected for download or install is a yanked version: 'atari-py' candidate (version 0.2.6 at https://files.pythonhosted.org/packages/df/c3/f70777c0a66fa8a26cbf471c4d96e304f5cf79718ea734880b4b36bc95fd/atari_py-0.2.6-cp37-cp37m-win_amd64.whl (from https://pypi.org/simple/atari-py/))
Reason for being yanked: re-release with new wheels
Installing collected packages: cloudpickle, atari-py
Attempting uninstall: cloudpickle
Found existing installation: cloudpickle 2.0.0
Uninstalling cloudpickle-2.0.0:
Successfully uninstalled cloudpickle-2.0.0
Attempting uninstall: atari-py
Found existing installation: atari-py 1.2.2
Uninstalling atari-py-1.2.2:
Successfully uninstalled atari-py-1.2.2
Successfully installed atari-py-0.2.6 cloudpickle-1.6.0
★ Atariのインストール CASE 2
次にGitから直接インストールする方法を実際にやってみましょう。
この結果は様々な条件により結果が異なります。
【実施環境】
OS : windows11
CPU : AMD
python : python3.7
少なくともGGE環境では下記黄色文字部にあるエラーが発生します。
(py37) d:\VisualStudio2017\Python3.5_GPU>pip install -U git+https://github.com/Kojoley/atari-py.git
Collecting git+https://github.com/Kojoley/atari-py.git
Cloning https://github.com/Kojoley/atari-py.git to c:\users\yamin\appdata\local\temp\pip-req-build-8ljmrp8x
Running command git clone --filter=blob:none --quiet https://github.com/Kojoley/atari-py.git 'C:\Users\yamin\AppData\Local\Temp\pip-req-build-8ljmrp8x'
Resolved https://github.com/Kojoley/atari-py.git to commit 86a1e05c0a95e9e6233c3a413521fdb34ca8a089
Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (from atari-py==1.2.2) (1.21.6)
Building wheels for collected packages: atari-py
Building wheel for atari-py (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [75 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-37
creating build\lib.win-amd64-cpython-37\atari_py
copying atari_py\ale_python_interface.py -> build\lib.win-amd64-cpython-37\atari_py
copying atari_py\__init__.py -> build\lib.win-amd64-cpython-37\atari_py
creating build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\adventure.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\air_raid.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\alien.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\amidar.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\assault.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\asterix.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\asteroids.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\atlantis.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\bank_heist.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\battle_zone.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\beam_rider.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\berzerk.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\bowling.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\boxing.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\breakout.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\carnival.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\centipede.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\chopper_command.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\crazy_climber.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\defender.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\demon_attack.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\double_dunk.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\elevator_action.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\enduro.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\fishing_derby.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\freeway.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\frostbite.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\gopher.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\gravitar.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\hero.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\ice_hockey.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\jamesbond.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\journey_escape.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\kaboom.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\kangaroo.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\krull.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\kung_fu_master.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\montezuma_revenge.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\ms_pacman.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\name_this_game.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\phoenix.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\pitfall.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\pong.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\pooyan.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\private_eye.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\qbert.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\riverraid.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\road_runner.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\robotank.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\seaquest.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\skiing.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\solaris.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\space_invaders.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\star_gunner.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\tennis.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\time_pilot.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\tutankham.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\up_n_down.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\venture.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\video_pinball.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\wizard_of_wor.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\yars_revenge.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\zaxxon.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
running build_ext
building 'ale_c' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for atari-py
Running setup.py clean for atari-py
Failed to build atari-py
Installing collected packages: atari-py
Attempting uninstall: atari-py
Found existing installation: atari-py 0.2.6
Uninstalling atari-py-0.2.6:
Successfully uninstalled atari-py-0.2.6
Running setup.py install for atari-py ... error
error: subprocess-exited-with-error
× Running setup.py install for atari-py did not run successfully.
│ exit code: 1
╰─> [77 lines of output]
running install
C:\Users\yamin\anaconda3\envs\py37\lib\site-packages\setuptools\command\install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
setuptools.SetuptoolsDeprecationWarning,
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-37
creating build\lib.win-amd64-cpython-37\atari_py
copying atari_py\ale_python_interface.py -> build\lib.win-amd64-cpython-37\atari_py
copying atari_py\__init__.py -> build\lib.win-amd64-cpython-37\atari_py
creating build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\adventure.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\air_raid.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\alien.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\amidar.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\assault.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\asterix.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\asteroids.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\atlantis.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\bank_heist.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\battle_zone.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\beam_rider.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\berzerk.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\bowling.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\boxing.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\breakout.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\carnival.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\centipede.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\chopper_command.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\crazy_climber.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\defender.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\demon_attack.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\double_dunk.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\elevator_action.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\enduro.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\fishing_derby.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\freeway.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\frostbite.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\gopher.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\gravitar.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\hero.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\ice_hockey.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\jamesbond.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\journey_escape.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\kaboom.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\kangaroo.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\krull.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\kung_fu_master.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\montezuma_revenge.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\ms_pacman.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\name_this_game.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\phoenix.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\pitfall.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\pong.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\pooyan.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\private_eye.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\qbert.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\riverraid.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\road_runner.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\robotank.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\seaquest.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\skiing.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\solaris.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\space_invaders.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\star_gunner.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\tennis.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\time_pilot.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\tutankham.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\up_n_down.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\venture.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\video_pinball.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\wizard_of_wor.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\yars_revenge.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
copying atari_py\atari_roms\zaxxon.bin -> build\lib.win-amd64-cpython-37\atari_py\atari_roms
running build_ext
building 'ale_c' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
Rolling back uninstall of atari-py
Moving to c:\users\yamin\anaconda3\envs\py37\lib\site-packages\atari_py-0.2.6.dist-info\
from c:\users\yamin\anaconda3\envs\py37\lib\site-packages\~tari_py-0.2.6.dist-info
Moving to c:\users\yamin\anaconda3\envs\py37\lib\site-packages\atari_py\
from c:\users\yamin\anaconda3\envs\py37\lib\site-packages\~tari_py
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> atari-py
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
このエラー部分をピックアップしてみると、次のように書いてあります。
error: Microsoft Visual C++ 14.0 or greater is required.
Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
つまり、CUDAインストール時と同じで「Atari」もインストール後 Visual C++ によってコンパイルされるために、ビルドツールが無くてビルドできなかったというエラーです。
実際このPCはCUDAをインストールするため「Visual C++ 2015 Build
Tools」がインストールされているはずなのですが、それでもエラーということは別のビルドツールが必要であり、コメントが示す「https://visualstudio.microsoft.com/visual-cpp-build-tools/」へ移動してみると、このサイトは「VisualStudio2022」用(2023/05現在最新)を示しているので、ビルドツールをインストールします。
① bild toolのダウンロード
https://visualstudio.microsoft.com/visual-cpp-build-tools/へ移動し「Build
Toolsのダウンロード」をクリックします。CUDAで解説したように Build Tools はVisual
Studioに同梱されているVC++コンパイルツールを指します。このため2023年現在「Build Tools」は最新版Visual
Studio2022における Microsoft C++ Build
toolsを示しています。これが2015/2017/2019で良いかはインスール時のワーニングの有無によってのみ確認可能です。
② vs_BuildTools.exeを実行
vs_BuildTools.exeを実行した後、「全てのアプリ」から「VisaulStudio2022」を探してみましょう。次に「設定」→「アプリ」→「VisualStudio
Build Tools 2022」両方に追加されていればOKです。
② 該当ホイールのインストール
ダウンロードホイールをテンポラリフォルダー移行し、そのフォルダーをコマンドプロンプトのカレントフォルダーとなるよう変更します。そして下記手順でホイールをインストールします。
(py37) d:\VisualStudio2017\Python3.5_GPU>pip install atari_py-0.2.6-cp37-cp37m-win_amd64.whl
Processing d:\visualstudio2017\python3.5_gpu\atari_py-0.2.6-cp37-cp37m-win_amd64.whl
Requirement already satisfied: numpy in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (from atari-py==0.2.6) (1.21.6)
Requirement already satisfied: six in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (from atari-py==0.2.6) (1.16.0)
atari-py is already installed with the same version as the provided wheel. Use --force-reinstall to force an installation of the wheel.
再度 pip でインストールしてみるとワーニングが無くなっています。
(py37) d:\VisualStudio2017\Python3.5_GPU>pip install gym[atari]
Requirement already satisfied: gym[atari] in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (0.19.0)
Requirement already satisfied: cloudpickle<1.7.0,>=1.2.0 in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (from gym[atari]) (1.6.0)
Requirement already satisfied: numpy>=1.18.0 in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (from gym[atari]) (1.21.6)
Requirement already satisfied: opencv-python>=3. in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (from gym[atari]) (4.6.0.66)
Requirement already satisfied: atari-py==0.2.6 in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (from gym[atari]) (0.2.6)
Requirement already satisfied: six in c:\users\yamin\anaconda3\envs\py37\lib\site-packages (from atari-py==0.2.6->gym[atari]) (1.16.0)