web-dev-qa-db-ja.com

ウィンドウを取得できません、中止します

Kivy hello worldプログラムを実行しているときによくあるエラーと思われるものを取得しています。ここで見た解決策を試しました:gstreamerを手動でインストールし、PATHに追加してPySDL2。私のOSはWindows 7であり、他のすべてのバージョン情報はエラーログにあります。

# you need this two lines:
import os
os.environ['KIVY_IMAGE'] = 'pil,sdl2'

#kivy program
from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello World')

TestApp().run()

エラーログ:

[INFO              ] [Logger      ] Record log in C:\Users\xyz\.kivy\logs\kivy_16-11-19_11.txt
[INFO              ] [Kivy        ] v1.9.1
[INFO              ] [Python      ] v2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)]
[INFO              ] [Factory     ] 179 symbols loaded
[INFO              ] [Image       ] Providers: img_pil, img_sdl2 (img_tex, img_dds, img_ffpyplayer, img_gif ignored)
[INFO              ] [Text        ] Provider: sdl2
[INFO              ] [OSC         ] using <thread> for socket
[INFO              ] [Window      ] Provider: sdl2
[INFO              ] [GL          ] GLEW initialization succeeded
[INFO              ] [GL          ] OpenGL version <3.1.0 - Build 8.15.10.2538>
[INFO              ] [GL          ] OpenGL vendor <Intel>
[INFO              ] [GL          ] OpenGL renderer <Intel(R) HD Graphics Family>
[INFO              ] [GL          ] OpenGL parsed version: 3, 1
[INFO              ] [GL          ] Shading version <1.40  - Intel Build 8.15.10.2538>
[INFO              ] [GL          ] Texture max size <8192>
[INFO              ] [GL          ] Texture max units <16>
[INFO              ] [Shader      ] fragment shader: <No errors.>
[INFO              ] [Shader      ] vertex shader: <No errors.>
[INFO              ] [Shader      ] program: <No errors.>
[CRITICAL          ] [Window      ] Unable to find any valuable Window provider at all!
sdl2 - AttributeError: tobytes
  File "C:\Program Files\python27\lib\site-packages\kivy\core\__init__.py", line 67, in core_select_lib
    cls = cls()
  File "C:\Program Files\python27\lib\site-packages\kivy\core\window\window_sdl2.py", line 138, in __init__
    super(WindowSDL, self).__init__()
  File "C:\Program Files\python27\lib\site-packages\kivy\core\window\__init__.py", line 722, in __init__
    self.create_window()
  File "C:\Program Files\python27\lib\site-packages\kivy\core\window\window_sdl2.py", line 255, in create_window
    super(WindowSDL, self).create_window()
  File "C:\Program Files\python27\lib\site-packages\kivy\core\window\__init__.py", line 897, in create_window
    self.render_context = RenderContext()
  File "kivy\graphics\instructions.pyx", line 756, in kivy.graphics.instructions.RenderContext.__init__ (kivy\graphics\instructions.c:10729)
  File "C:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 512, in __init__
    self.filename = arg
  File "C:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 700, in _set_filename
    mipmap=self._mipmap, nocache=self._nocache)
  File "C:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 430, in load
    im = loader(filename, **kwargs)
  File "C:\Program Files\python27\lib\site-packages\kivy\core\image\__init__.py", line 198, in __init__
    self._data = self.load(filename)
  File "C:\Program Files\python27\lib\site-packages\kivy\core\image\img_pil.py", line 101, in load
    return list(self._img_read(im))
  File "C:\Program Files\python27\lib\site-packages\kivy\core\image\img_pil.py", line 86, in _img_read
    img_tmp.mode.lower(), img_tmp.tobytes())
  File "C:\Program Files\python27\lib\site-packages\PIL\Image.py", line 514, in __getattr__
    raise AttributeError(name)

[CRITICAL          ] [App         ] Unable to get a Window, abort.
 Exception SystemExit: 1 in 'kivy.properties.dpi2px' ignored
[CRITICAL          ] [App         ] Unable to get a Window, abort.
14
foosion

Cmdでpython34に移動し、次にScriptsに移動して次をインストールします。

pip install --upgrade pip wheel setuptools
pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
pip install kivy.deps.gstreamer
pip install kivy.deps.angle
pip install kivy
30
Suraj Kumar

<python dir>\share\sdl2\binパスに、トリックを行う必要があります。問題は、動作するsdl2バイナリが見つからないことです。おそらくPILwindowprovider もないので、環境変数はウィンドウを作成するための処理を行いません(ただし、画像プロバイダーとして使用されます)。

私はPySDL2にあまり精通していないので、それを手伝うことはできませんが、初心者向けに物事を簡単にするために、WindowsのKivyで installer を作成しました。

とにかく最終的には2つの方法があります:

  1. binフォルダーをPATH変数に永続的に配置します

    Pythonまたはフォルダーを削除しないと確信していない限り、それは本当に愚かだと思います。さもなければ、PATH +他のすべてのプログラムにゴーストフォルダーができます。 binを介したPATHフォルダー内のファイルへのアクセス

  2. 一時的にそれを行うバッチファイルがあります

    コンソール/バッチから実行されたプログラムのみがbinフォルダーにアクセスできます。

インストーラーはあなたのためにそれをし、実際にはゼロからインストールします(Pythonなし)または他の多くのもの。

Kivy dependencies をインストールしていない場合は、最初にインストールしてください。

5
KeyWeeUsr

仮想ソフトウェア(別名vmbox、vmware)の表示設定で3Dアクセラレーションと2Dビデオアクセラレーションを無効にします。私はこれがあなたのために働くと思う、それは多くの試みの後に私のために働く。

1
Mahmoud Harb

WindowsまたはLinuxについてはわかりませんが、最上位のpython-for-Androidでは、次を配置する必要があります。

#qpy:kivy
import kivy
kivy.require('1.10.1') # replace with your current kivy version !
1
Robert Holmes

簡単な修正を見つけました

  1. pipを使用してKivyをインストールしたら
  2. C:\ Users \(アカウント名)\。kivy \に移動して、config.iniファイルを開きます
  3. 変更 - multisamples = 0 from = 2その後、コンピューターを再起動します。これにより、他の問題も保存されます。

[クリティカル] [GL]最低限必要なOpenGLバージョン(2.0)が見つかりません!

これは、Windows 7 64ビット、python3.5(32ビット)、Kivy バージョン1.10.で動作しました

0
Ronald Saunfe