

PycharmのProject Interpreterでgymがinstallできません。

[code]

    numpy.distutils.system_info.NotFoundError: No lapack/blas resources found.
    
[/code]

とエラーが出ます。解決方法は何でしょうか。

**追記**

Windows10を使用しております。Python 3.8.1 です。  
コマンドプロンプトで `pip install gym`
と入力し、インストールできたのですが、プログラムを実行する際に、gymをimportできませんでした。  
そこで、Project Interpreterからgymをインストールしようとした際に、上のような問題が発生しました。

また、先輩のパソコンでは、同じプログラムを実行してちゃんと動きました。


CC BY-SA 4.0
2020-03-21T13:37:58.113
64015
2020-03-27T11:54:42.327
2020-03-24T12:45:37.453
32986
38317
question
python pip pycharm
PycharmのProject Interpreterでgymがinstallできない


# 【回答】

gymが含まれるProject Interpreterを使用する。  
gymを含むProject Interpreterを選ぶ、または、新規に作成します。

# 【Project Interpreterの作り方】

### 前提

Windows10のコマンドプロンプトで以下を実行し、gymをインストールしておく。

[code]

    pip install gym 
    
[/code]

### 手順

Settings(Ctrl+Alt+S)の歯車アイコンをクリックし、Addを選択する。  
Virtualenvを選択し、Project Interpreterを作成する。  
※Virtualenvを選択すると、Packageのリストにgymが含まれていました。  
gymが含まれていれば他の選択肢でもよいと思います。  
私の環境では、システム・インタープリターやAnacondaのProject Interpreterにgymが含まれていませんでした。

以上は[Pythonインタープリターを設定する](https://pleiades.io/help/pycharm/configuring-python-
interpreter.html)を参考にしました。


CC BY-SA 4.0
2020-03-24T12:12:11.650
64083
2020-03-24T12:12:11.650
2020-06-17T08:14:45.997
-1
35558
64015
answer


回答の前に、原因はPyCharm自身が作成する新規virtualenv環境に入っているpipとsetuptoolsの版数が古い(あるいはそれに加えてsetuptoolsが完全には展開されていない?)ためだと思われます。

プロジェクト・インタープリターをPython3.8にしていた場合、新規virtualenv環境に入っているのはpip-19.0.3-py3.8.eggとsetuptools-40.8.0-py3.8.eggで、setuptools-40.8.0-py3.8.eggの方は展開されないままになっています。

その状態でメニューの「設定」の「プロジェクト・インタープリター」から「gym」のインストールを行うと、質問のエラーが発生してインストール出来ませんでした。

解決方法は以下のいずれかになるでしょう。

  * あらかじめPyCharmではない元々のPythonとvirtualenv(あるいはpipenvやconda)で環境を構築しておき、PyCharmのプロジェクト作成ではその環境を「既存インタープリター」として選択する  
@akira ejiri さんの方式ですね。  
その際にはpip, setuptools, virtualenv は最新に上げておいてから作業しましょう。  
@akira ejiri さん回答のように先にgymをインストールしておいても良いでしょう。  
pip, setuptoolsが最新ならばgymは後からPyCharmでインストールしても良いようです。

  * PyCharmの新規virtualenv環境に入っているpip, setuptoolsの版数を上げる  
いろいろと面倒で多数の手順が必要ですが、この方法でもgymのインストールは出来ます。

ただしインストールは出来ましたが、その先の簡単なプログラム実行でつまづいているので、まだ何か不足しているのかもしれません。

* * *

PyCharm以外で先に作っておく方法：

  * Python3.8やScriptsがPATHに入っているコマンドプロンプトで作業する
  * `pip list -o`を実行して古いものがあれば最新版に更新しておく
  * C:\Users\ユーザー名\PyCharmProjects フォルダに移動
  * `virtualenv -p Python3.8 プロジェクト名`を実行して新規環境を作成する
  * `プロジェクト名\Scripts\activate.bat`を実行してPython環境を移行する
  * こちらでも`pip list -o`を実行して古いものがあれば最新版に更新しておく
  * 希望するならgymもインストールしておく
  * PyCharmの新規プロジェクトの作成で上記で作成したプロジェクト名を指定し、「既存インタープリター」を選んで上記で作成した環境を指定する
  * 先にインストールしていなければ、ここでメニューの「設定」の「プロジェクト・インタープリター」の「＋」(インストール)で`gym`をインストール
  * 入れた中に版数が上がっているパッケージがあれば上げておく

* * *

PyCharmで作った環境の更新：

  * メニューの「設定」の「プロジェクト・インタープリター」でpipを20.0.2に上げる
  * 以後はPyCharm左下のターミナルで作業する 
    * `cd lib\site-packages` で移動
    * `rd /s /q pip-19.0.3-py3.8.egg` でフォルダ削除
    * `cd ..\..` で戻る
    * フォルダに pip の最新wheel pip-20.0.2-py2.py3-none-any.whl をダウンロード
    * `py -m pip install -U pip-20.0.2-py2.py3-none-any.whl` でインストール
    * `cd lib\site-packages` で移動
    * `del *.pth` で easy_install.pth と setuptools.pth をファイル削除
    * `cd ..\..` で戻る
    * フォルダに setuptools の最新wheel setuptools-46.1.3-py3-none-any.whl をダウンロード
    * `pip install -U setuptools-46.1.3-py3-none-any.whl` でインストール
    * `cd lib\site-packages` で移動
    * `del setuptools-40.8.0-py3.8.egg` でファイル削除
    * `rd /s /q __pycache__` でフォルダ削除
    * `del easy_install.py` でファイル削除
    * `cd ..\..` で戻る
    * `del *.whl` で 各wheel をファイル削除
  * メニューからキャッシュの削除/PyCharm再起動
  * メニューの「設定」の「プロジェクト・インタープリター」の「＋」(インストール)で`gym`をインストール
  * 入れた中に版数が上がっているパッケージがあれば上げておく

* * *

インストールと`import`は出来ましたが、その先の簡単なプログラム実行でつまづいています。  
どちらの方法でインストールしても、以下のサイトの最初のページにある以下のプログラムで、`env.render()`のところで例外が発生して実行出来ていません。  
[Gym](https://gym.openai.com/)

>
[code]

>     import gym
>     env = gym.make("CartPole-v1")
>     observation = env.reset()
>     for _ in range(1000):
>       env.render()
>       action = env.action_space.sample() # your agent here (this takes
> random actions)
>       observation, reward, done, info = env.step(action)
>  
>       if done:
>         observation = env.reset()
>     env.close()
>  
[/code]

`_get_pixel_format_descriptor_matching_configs, win32.py:102 pf =
_gdi32.ChoosePixelFormat(canvas.hdc, byref(pfd))`で`__exception__(<class
'OSError'>, OSError('exception: access violation reading 0x000000C7DC53A07C'),
<traceback object at 0x000001E954362DC0>)`の例外になります。

私自身はgymのことを何も知らないので、まだ何かパッケージや設定が不足しているのかもしれません。


CC BY-SA 4.0
2020-03-27T11:34:15.057
64154
2020-03-27T11:54:42.327
2020-03-27T11:54:42.327
26370
26370
64015
answer