質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

OpenAI Gym

OpenAI Gymは、強化学習を開発・強化するためのシミュレーション環境です。強化学習における実験や評価環境などを標準化し提供することを目的としています。さらに、結果をアップロードしたり、他の人の実行結果や実装を見ることも可能です。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

3395閲覧

python - Windows 10でOpenAI Gym-Atariを使用すると、「OSError:[WinError 126]指定されたモジュールが見つかりませんでした」

tanakan

総合スコア1

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

OpenAI Gym

OpenAI Gymは、強化学習を開発・強化するためのシミュレーション環境です。強化学習における実験や評価環境などを標準化し提供することを目的としています。さらに、結果をアップロードしたり、他の人の実行結果や実装を見ることも可能です。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/07/01 07:04

編集2022/07/02 02:50

使用環境
anaconda3
python3.7(仮想環境)
stable-baselines[mpi]
windows10

環境構築
参考にした書籍:https://www.borndigital.co.jp/book/17130.html

①仮想環境の構築
conda create -n openai_gym python=3.7 anaconda
conda active openai_gym
pip install tensorflow==1.14.0

②stable-baselinesのインストール
pip install stable-baselines[mpi]
pip install --upgrade --user pyqtwebengine==5.12
pip isntall --upgrade --user pyqt5==5.12
pip isntall imageio

現在、強化学習の勉強をしておりAtariにある「breakout」の学習を行っているのですが、その際に以下ようなエラーが出てしまいます。なお、書籍のホームページからダウンロードできた「breakout.py」というソースコードを実行しました。

(openai_gym) C:\Users\kouse\OneDrive\デスクトップ\sample\5_Atari環境の攻略\1_Atari環境の学習>python breakout.py
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorflow\python\framework\dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint8 = np.dtype([("qint8", np.int8, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorflow\python\framework\dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorflow\python\framework\dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint16 = np.dtype([("qint16", np.int16, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorflow\python\framework\dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint16 = np.dtype([("quint16", np.uint16, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorflow\python\framework\dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint32 = np.dtype([("qint32", np.int32, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorflow\python\framework\dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
np_resource = np.dtype([("resource", np.ubyte, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint8 = np.dtype([("qint8", np.int8, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint16 = np.dtype([("qint16", np.int16, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint16 = np.dtype([("quint16", np.uint16, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
np_qint32 = np.dtype([("qint32", np.int32, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
np_resource = np.dtype([("resource", np.ubyte, 1)])
C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\stable_baselines_init
.py:33: UserWarning: stable-baselines is in maintenance mode, please use Stable-Baselines3 (SB3) for an up-to-date version. You can find a migration guide in SB3 documentation.
"stable-baselines is in maintenance mode, please use Stable-Baselines3 (SB3) for an up-to-date version. You can find a migration guide in SB3 documentation."
WARNING:tensorflow:From C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\stable_baselines\common\misc_util.py:26: The name tf.set_random_seed is deprecated. Please use tf.compat.v1.set_random_seed instead.

Traceback (most recent call last):
File "breakout.py", line 64, in <module>
main()
File "breakout.py", line 27, in main
train_env = DummyVecEnv([make_env(ENV_ID, i) for i in range(NUM_ENV)])
File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\stable_baselines\common\vec_env\dummy_vec_env.py", line 23, in init
self.envs = [fn() for fn in env_fns]
File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\stable_baselines\common\vec_env\dummy_vec_env.py", line 23, in <listcomp>
self.envs = [fn() for fn in env_fns]
File "breakout.py", line 16, in init
env = gym.make(env_id)
File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\gym\envs\registration.py", line 184, in make
return registry.make(id, **kwargs)
File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\gym\envs\registration.py", line 106, in make
env = spec.make(**kwargs)
File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\gym\envs\registration.py", line 75, in make
cls = load(self.entry_point)
File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\gym\envs\registration.py", line 18, in load
mod = importlib.import_module(mod_name)
File "C:\Users\kouse\anaconda3\envs\openai_gym\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\kouse\anaconda3\envs\openai_gym\lib\site-packages\gym\envs\atari_init
.py", line 1, in <module>
from gym.envs.atari.atari_env import AtariEnv
File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\gym\envs\atari\atari_env.py", line 9, in <module>
import atari_py
File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\atari_py_init
.py", line 1, in <module>
from .ale_python_interface import *
File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\atari_py\ale_python_interface.py", line 18, in <module>
'ale_interface/ale_c.dll'))
File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\ctypes_init
.py", line 442, in LoadLibrary
return self.dlltype(name)
File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\ctypes_init
.py", line 364, in init
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 指定されたモジュールが見つかりません。

自分で調べたところ、何やら「dllファイル」というものが不足しているらしいということが分かったのですが、どのdllファイルが不足しているのか、また不足しているdllファイルの探し方が分かりません。ですので、不足しているdllファイルの探し方について教えていただきたいです。なお、stable-baselines自体は正常に動作していました。atariを実行しようとするとエラーが出てしまうといった状況です。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2022/07/01 07:30

「OpenAI Gym-Atari」環境構築において - 参考にしたサイト - 具体的に行った全ての手順(「このサイトを参考にしました」ではなく) 環境構築後において - エラーが発生するまでに行った実行手順 - エラーメッセージの全テキスト(画像ではなく) を提示すると回答得られやすくなるかと思います。
tanakan

2022/07/02 02:51

回答ありがとうございます。試させていただいたのですが、エラーが消えませんでした。
jbpb0

2022/07/03 22:37

エラーメッセージから、下記が無いのが原因のようなので、実際に下記が無いかどうか確認してみてください C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\atari_py\ale_interface/ale_c.dll 「ale_c.dll」がやはり無いなら、 https://github.com/openai/atari-py/issues/69 に書かれてる下記を実行した後に、再度確認してみてください pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py 上記を実行した後も「ale_c.dll」が無いなら、上記「pip install...」を実行した際に何て表示されたのかを、できるだけ省略しないで教えてください
tanakan

2022/07/04 04:33

回答ありがとうございます。確認させていただいたのですが、ale_c.dllはありました。また、更新日時から pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py を実行しても「ale_c.dll」は変更されていませんでした。
jbpb0

2022/07/04 06:25

> ale_c.dllはありました。 あれ? 下記から、そのファイルが無いためエラーが出てるのだと思ったのですが、あるのですか > File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\atari_py\ale_python_interface.py", line 18, in <module> 'ale_interface/ale_c.dll')) File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\ctypes_init.py", line 442, in LoadLibrary return self.dlltype(name) File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\ctypes_init.py", line 364, in init self._handle = _dlopen(self._name, mode) OSError: [WinError 126] 指定されたモジュールが見つかりません。 確認ですが、現在のエラーも上記と変わり無いのですよね? あと、「ale_c.dll」が C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\atari_py\ale_interface とは別の場所にあるとか、サイズが0であるとか、そういうこともありませんよね?
tanakan

2022/07/04 07:46

回答ありがとうございます。 ->確認ですが、現在のエラーも上記と変わり無いのですよね? エラーは全く同じものが出ています。 ->別の場所にあるとか、サイズが0であるとか、そういうこともありませんよね? 「C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\atari_py\ale_interface」のフォルダ内に存在しており、サイズも3238KBありました。
tanakan

2022/07/06 05:51

回答ありがとうございます。また、返信遅くなり申し訳ありません。  調べてみたところ、「mscvp140d.dll」「vcruntime140d.dll」「ucrtbased.dll」の三つが無いことがわかりました。  また、この三つの「d」が無いバージョンである「mscvp140.dll」「vcruntime140.dll」「ucrtbase.dll」の三つはあったことから、これはvisual studioのビルドツール側の問題だということがわかりました。 そこで、下記のサイトを参考にして再度「Microsoft Visual C++ 2015 Redistributable」のインストールを行い、anacondaの環境を作り直しました。 https://www.drivereasy.jp/msvcp140-dll-missing/#h2 すると、「ale_interface」がなくなり、エラーが次のように出るようになってしまいました。 File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\gym\envs\atari\__init__.py", line 1, in <module> from gym.envs.atari.atari_env import AtariEnv File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\gym\envs\atari\atari_env.py", line 9, in <module> import atari_py File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\atari_py\__init__.py", line 1, in <module> from .ale_python_interface import * File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\atari_py\ale_python_interface.py", line 28, in <module> ale_lib = cdll.LoadLibrary(get_shared_lib_path()) File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\ctypes\__init__.py", line 442, in LoadLibrary return self._dlltype(name) File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\ctypes\__init__.py", line 364, in __init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 126] 指定されたモジュールが見つかりません。
tanakan

2022/07/06 05:52

追記です。「ale_c.dll」が入っていたフォルダである「ale_interface」が丸ごとなくなっていました。
jbpb0

2022/07/06 07:50

> anacondaの環境を作り直しました。 > 「ale_interface」が丸ごとなくなっていました。 「atari_py」は、どうやってインストールしたのでしょうか?
tanakan

2022/07/07 00:26

回答ありがとうございます。 上記のものと同じく、 pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py でインストールしました。また、他の環境構築の方法に関しても同じ方法を用いています。
jbpb0

2022/07/07 04:05

この質問をした時には「ale_interface」が有ったようなので、その時の手順で環境を作ってみてください > pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py は一旦忘れて
tanakan

2022/07/10 07:08

回答ありがとうございます。 最初atariは「pip install gym [atari]」でインストールしており、もう一度それでインストールしたところ「ale_interface」が有り、またエラーも同様のものが出るようになりました。 File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\gym\envs\atari\__init__.py", line 1, in <module> from gym.envs.atari.atari_env import AtariEnv File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\gym\envs\atari\atari_env.py", line 9, in <module> import atari_py File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\atari_py\__init__.py", line 1, in <module> from .ale_python_interface import * File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\atari_py\ale_python_interface.py", line 18, in <module> 'ale_interface/ale_c.dll')) File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\ctypes\__init__.py", line 442, in LoadLibrary return self._dlltype(name) File "C:\Users\kouse\anaconda3\envs\openai_gym\lib\ctypes\__init__.py", line 364, in __init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 126] 指定されたモジュールが見つかりません。
jbpb0

2022/07/10 07:57

> 「mscvp140d.dll」「vcruntime140d.dll」「ucrtbased.dll」の三つが無いことがわかりました。 は今は有って、それが置いてある場所は環境変数Pathに含まれてるのですよね?
tanakan

2022/07/10 08:17

 いえ、その三つはありません。ただ、それの「d」が無いバージョンの「mscvp140.dll」「vcruntime140.dll」「ucrtbase.dll」の三つはありました。  そして、これはビルドが「debugモード」か「releseモード」の違いであることまでわかっています。  ですので、現在はanacondaのビルドの設定の変更方法や「mscvp140d.dll」「vcruntime140d.dll」「ucrtbased.dll」のインストールの方法について調べている状況です。
jbpb0

2022/07/10 14:23

> 「mscvp140d.dll」「vcruntime140d.dll」「ucrtbased.dll」のインストールの方法 それらはVisual Studioをインストールしたら入ります https://qiita.com/qinyong/items/4f88a5e019871f1033a1 デバッグ用のライブラリを必要とするものが正規版としてリリースされてるのは変ですけど https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10210427550 > 「pip install gym [atari]」でインストール で入る最新バージョンをビルドする際の設定が間違ってたのかもしれません 古いバージョンを指定してインストールしてみたら、いかがでしょうか
tanakan

2022/07/19 07:09

返信遅くなり申し訳ありません。 visual studioを再インストールすると動きました!! 長い間、丁寧に教えてくださりありがとうございました!
tanakan

2022/07/19 07:18

申し訳ないのですが、ベストアンサーの選び方について教えていただけないでしょうか。 jbpb0さんがこたえてくださったものをベストアンサーにしたいのですが、調べても方法が分かりません。
jbpb0

2022/07/19 08:40 編集

> visual studioを再インストールすると動きました!! の意味ですが、これまではランタイムの > 「Microsoft Visual C++ 2015 Redistributable」のインストール のみしていたのを、今回は「Visual Studio」(ランタイムではなく開発環境)をインストールした、という意味でしょうか? それとも、今回も「Visual Studio」(開発環境)は入れてなくて、ランタイム(Redistributable)を入れ直したら動いた、ということでしょうか? もし後者なら、ランタイム(Redistributable)を入れ直したら、デバッグ用の「mscvp140d.dll」「vcruntime140d.dll」「ucrtbased.dll」が入ったのでしょうか?
tanakan

2022/07/19 11:40

回答ありがとうございます。前者の方であり、 「Microsoft Visual C++ 2015 Redistributable」のインストール のみしていたのを、今回は「Visual Studio」(ランタイムではなく開発環境)をインストールした、という意味です。
guest

回答1

0

ベストアンサー

[WinError 126] 指定されたモジュールが見つかりません。

C:\Users\kouse\anaconda3\envs\openai_gym\lib\site-packages\atari_py\ale_interface/ale_c.dll
が必要としてる別のdllに足りないものがあるようなので、Dependenciesとかを使って調べてみてください

参考
実行ファイルやDLLの動作に必要なDLLを調べるツール

投稿2022/07/29 00:49

jbpb0

総合スコア7653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問