Hai, Saya mencoba menjalankan kode contoh dari instal Kivy. Berikut ini adalah kesalahan yang saya terima kembali. Bantuan apa pun akan sangat membantu. Saya telah mencoba melihat pertanyaan sebelumnya tentang masalah serupa, tetapi sejauh ini tidak ada saran yang berhasil.
[INFO ] [Logger ] Record log in C:\Users\DoddJ\.kivy\logs\kivy_18-03-26_52.txt
[INFO ] [Kivy ] v1.10.0
[INFO ] [Python ] v3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)]
[INFO ] [Factory ] 194 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_pil, img_gif (img_sdl2, img_ffpyplayer ignored)
[INFO ] [Text ] Provider: pil(['text_sdl2'] ignored)
[CRITICAL] [Window ] Unable to find any valuable Window provider.
sdl2 - ImportError: DLL load failed: The specified module could not be found.
File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\core\window\window_sdl2.py", line 26, in <module>
from kivy.core.window._window_sdl2 import _WindowSDL2Storage
[CRITICAL] [App ] Unable to get a Window, abort.
Exception ignored in: 'kivy.properties.dpi2px'
Traceback (most recent call last):
File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\utils.py", line 496, in __get__
retval = self.func(inst)
File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\metrics.py", line 174, in dpi
EventLoop.ensure_window()
File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\lib\site-packages\kivy\base.py", line 127, in ensure_window
sys.exit(1)
SystemExit: 1
[CRITICAL] [App ] Unable to get a Window, abort.
Kode yang saya coba jalankan:
import kivy
kivy.require('1.10.0') # replace with your current kivy version !
from kivy.app import App
from kivy.uix.label import Label
class MyApp(App):
def build(self):
return Label(text='Hello world')
if __name__ == '__main__':
MyApp().run()
apa yang dikatakan ini di sistem Anda (PowerShell):
python -m pip freeze | select-string cython
@dolang katanya
'select-string' tidak dikenali sebagai perintah internal atau eksternal,
program yang dapat dioperasikan atau file batch.
ya, maaf itu tidak jelas. Anda perlu menjalankannya di PowerShell. Ini adalah pengganti untuk DOS prompt.
Gunakan Win + x
lalu pilih, atau ketik powershell
pada command prompt. Anda akan memiliki PS
sebagai 2 huruf pertama dari prompt.
Oh baiklah. Di powershell tertulis
Cython==0.27.3
Baiklah, mencoba mereproduksinya dengan lingkungan serupa yang tidak sama tanpa hasil. Pada dasarnya, apa yang dikatakan kesalahannya adalah bahwa perpustakaan sdl2
tidak ada. Tapi seharusnya sudah diinstal dengan python -m pip install kivy.deps.sdl2
yang ada di deskripsi asli Anda di suatu tempat.
Saya harus mencoba mereproduksi ini di komputer lain lagi, Anda dapat mencoba pip uninstall ...
+ pip install ...
ketergantungan itu untuk sementara.
Mencoba di komputer lain sekarang, mendapatkan hasil yang sama (yaitu berfungsi di sini). Apa yang Anda miliki untuk:
PS C:\> python -m pip freeze | select-string sdl2
itu akan memberi Anda: kivy.deps.sdl2==0.1.17
.
Atau, jika Anda memiliki beberapa juru bahasa Python yang diinstal:
PS C:\> py -3.6 -m pip freeze | select-string sdl2
Jika salah satu dari dua perintah ini tidak memberikan hasil di atas, coba instal ulang kivy.deps.sdl2
.
Jika mereka melakukannya dan tidak berhasil, harap rekatkan apa yang Anda dapatkan dengan:
PS C:\> dir C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\share\sdl2\bin
Mungkin Anda harus menginstal ulang interpreter Python 64-bit. (Hanya tebakan, belum yakin.)
Saya melakukan itu dan
dapatkan kivy.deps.sdl2==0.1.17
Saya telah menghapus 32-bit dan menginstal Python 64-bit sebagai gantinya, namun, masih mendapatkan kesalahan ini
H:\untitled2\Scripts\python.exe "C:/Users/DoddJ/PycharmProjects/untitled/KIVY TEST.py"
[INFO ] [Logger ] Record log in C:\Users\DoddJ\.kivy\logs\kivy_18-03-28_40.txt
[INFO ] [Kivy ] v1.10.0
[INFO ] [Python ] v3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
[INFO ] [Factory ] 194 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_pil, img_gif (img_sdl2, img_ffpyplayer ignored)
[INFO ] [Text ] Provider: pil(['text_sdl2'] ignored)
[CRITICAL] [Window ] Unable to find any valuable Window provider.
[CRITICAL] [App ] Unable to get a Window, abort.
Exception ignored in: 'kivy.properties.dpi2px'
Traceback (most recent call last):
File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\utils.py", line 496, in __get__
retval = self.func(inst)
File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\metrics.py", line 174, in dpi
EventLoop.ensure_window()
File "C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\base.py", line 127, in ensure_window
sys.exit(1)
SystemExit: 1
[CRITICAL] [App ] Unable to get a Window, abort.
Process finished with exit code 1
Yah, saya tidak yakin apakah 32/64-bit bisa menjadi masalah di sini. Tetapi dapatkah Anda melihat apakah .dll
itu benar-benar ada?
PS C:\> dir C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36\share\sdl2\bin
Jika ada, mungkin pemindai virus Anda memblokirnya, atau firewall Anda (atau perangkat lunak lain yang mengganggu)? Ini bukan sesuatu yang harus terjadi, imho.
Sunting: lihat instalasi saya lagi dan buka aplikasi yang berjalan di Process Hacker. SDL2.dll ini dibuat khusus untuk PyPI dan sepertinya tidak ditandatangani. Tergantung pada pengaturan kebijakan Windows Anda, itu bisa diblokir secara otomatis karena itu. Mungkin yang berikut ini bisa membantu?
Menurut komentar sebelumnya, Anda memiliki cython 0.27.3 dan log konsol mengatakan Kivy v1.10.0 ... versi tersebut tidak kompatibel, meskipun saya tidak yakin persis mengapa penyedia jendela yang hilang adalah petunjuk pertama untuk masalah ini.. .. Mungkin coba gunakan cython 0.25.2 (kompatibel dengan 1.10) + instal ulang kivy, atau sebagai alternatif pip install kivy==master
dengan versi cython Anda saat ini?
Saya mendapatkan masalah ini juga dengan Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
````
C:> python3 -m pip tampilkan kivy kivy.deps.glew kivy.deps.sdl2
Nama: Kivy
Versi: 1.10.0
Ringkasan: Pustaka perangkat lunak untuk pengembangan cepat aplikasi multisentuh yang dipercepat perangkat keras.
Halaman beranda: http://kivy.org
Penulis: Tim Kivy dan kontributor lainnya
Penulis-email: [email protected]
Lisensi: MIT
Lokasi: c:\users\jedingtoappdata\roaming\python\python36\site-packages
Membutuhkan: docutils, Kivy-Garden, pygments
Nama: kivy.deps.glew
Versi: 0.1.9
Ringkasan: Ketergantungan biner yang dikemas ulang dari Kivy.
Halaman beranda: http://kivy.org/
Pengarang: Kivy Crew
Penulis-email: [email protected]
Lisensi: MIT
Lokasi: c:\users\jedingtoappdata\roaming\python\python36\site-packages
Memerlukan:
Nama: kivy.deps.sdl2
Versi: 0.1.17
Ringkasan: Ketergantungan biner yang dikemas ulang dari Kivy.
Halaman beranda: http://kivy.org/
Pengarang: Kivy Crew
Penulis-email: [email protected]
Lisensi: zlib
Lokasi: c:\users\jedingtoappdata\roaming\python\python36\site-packages
Memerlukan:
Diperlukan-oleh:
````
menjalankannya memberikan yang berikut:
````
Python 3.6.5 (v3.6.5:f59c0932b4, 28 Mar 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] di win32
Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut.
dari kivy.app impor App
[INFO ] [Logger ] Rekam log di C:\Users\jedingto.kivy\logs\kivy_18-05-17_4.txt
[INFO ] [Kivy ] v1.10.0
[INFO ] [Python ] v3.6.5 (v3.6.5:f59c0932b4, 28 Mar 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]
[INFO ] [Pabrik] 194 simbol dimuat
[INFO ] [Gambar ] Penyedia: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer diabaikan)
dari kivy.uix.widget impor Widget
kelas PongGame(Widget):
... lulus
...
kelas PongApp(Aplikasi):
... def membangun (diri):
... kembalikan PongGame()
...
PongApp().run()
[KRITIS] [Window ] Tidak dapat menemukan penyedia Window yang berharga.
sdl2 - ImportError: Beban DLL gagal: Modul yang ditentukan tidak dapat ditemukan.
File "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py", baris 59, di core_select_lib
dari daftar=[nama modul], level=0)
File "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", baris 26, di
dari kivy.core.window._window_sdl2 impor _WindowSDL2Storage
[KRITIS] [Aplikasi] Tidak bisa mendapatkan Jendela, batalkan.
````
Meskipun keberadaan DLL SDL2:
````
dir %AppData%\Python\sharesdl2\bin\SDL2.dll
Volume di drive C adalah XXXXXX
Volume Nomor Seri adalah 0000-0000
Direktori C:\Users\USERAppData\Roaming\Python\sharesdl2\bin
17-05-2018 11:33 1.254.400 SDL2.dll
1 File 1.254.400 byte
0 Dir 161.199.689.728 byte gratis
````
dan saya harus menambahkan bahwa ini terjadi bahkan jika saya menghapus kivy.deps.sdl
dari mode --user
dan menginstalnya ke C:\Program Files\Python\share\sdl2
melalui Mode Administrator, kesalahannya sama:
````
PongApp().run()
[KRITIS] [Window ] Tidak dapat menemukan penyedia Window yang berharga.
sdl2 - ImportError: Beban DLL gagal: Modul yang ditentukan tidak dapat ditemukan.
File "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core__init__.py", baris 59, di core_select_lib
dari daftar=[nama modul], level=0)
File "C:\Users\jedingtoAppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", baris 26, di
dari kivy.core.window._window_sdl2 impor _WindowSDL2Storage
[KRITIS] [Aplikasi] Tidak bisa mendapatkan Jendela, batalkan.
````
Itu bahkan tidak berfungsi jika saya cd
langsung ke direktori di sebelah SDL2.dll
sebelum menjalankan python3
Baiklah, ada beberapa hal yang berperan di sini:
.dll
harus ada di direktori itu...\site-packages\kivy\deps\sdl2\__init__.py
dimuat dan menunjuk ke .dll
Sejauh ini saya tidak dapat mereproduksinya, tetapi 3. adalah sesuatu yang tidak dapat dikecualikan.
Hal lain yang dapat Anda coba: buka command prompt dan arahkan PATH langsung ke folder sdl2. Sesuatu seperti:
\> set PATH=C:\Users\USER\AppData\Roaming\Python\share\sdl2\bin;%PATH%
@dolang Nah, sepertinya menambahkan folder SDL2.dll
ke %PATH%
memperbaiki.... bagian dari kesalahan itu. img_sdl2
sekarang tidak lagi "diabaikan", tetapi masih "Tidak dapat menemukan penyedia Window yang berharga". Itu juga memberikan beberapa pesan kesalahan yang sedikit berbeda (hampir secara eksklusif diperluas?)
[INFO ] [Logger ] Record log in C:\Users\jedingto\.kivy\logs\kivy_18-05-17_15.txt
[INFO ] [Kivy ] v1.10.0
[INFO ] [Python ] v3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]
[INFO ] [Factory ] 194 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
[INFO ] [OSC ] using <thread> for socket
[INFO ] [Window ] Provider: sdl2
[CRITICAL] [Window ] Unable to find any valuable Window provider.
sdl2 - ImportError: DLL load failed: The specified module could not be found.
File "C:\Users\jedingto\AppData\Roaming\Python\Python36\site-packages\kivy\core\__init__.py", line 67, in core_select_lib
cls = cls()
File "C:\Users\jedingto\AppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", line 140, in __init__
super(WindowSDL, self).__init__()
File "C:\Users\jedingto\AppData\Roaming\Python\Python36\site-packages\kivy\core\window\__init__.py", line 899, in __init__
self.create_window()
File "C:\Users\jedingto\AppData\Roaming\Python\Python36\site-packages\kivy\core\window\window_sdl2.py", line 269, in create_window
self.fullscreen, resizable, state)
File "kivy\core\window\_window_sdl2.pyx", line 110, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window (kivy\core/window\_window_sdl2.c:2466)
File "kivy\graphics\cgl.pyx", line 52, in kivy.graphics.cgl.cgl_get_backend_name (kivy\graphics\cgl.c:3044)
File "kivy\graphics\cgl.pyx", line 60, in kivy.graphics.cgl.cgl_get_backend_name (kivy\graphics\cgl.c:2879)
File "C:\Program Files\Python36\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
File "<frozen importlib._bootstrap>", line 571, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 922, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
Saya mengkonfirmasi dengan berulang kali menambahkan dan menghapus itu dari PATH bahwa keberadaan img_sdl2
di bagian "diabaikan" tergantung pada itu, dan bahwa teks kesalahan yang diperluas muncul atau menghilang tergantung pada apakah itu dapat menemukan SDL2 atau tidak.
Sekarang, ketergantungan glew
harus memiliki folder tepat di sebelahnya ( share\glew\bin
). Apa yang terjadi jika Anda menambahkannya juga?
Ah!
Jadi, di Windows, itu bisa "dipecahkan" dengan menambahkan %AppData%\Python\share\glew\bin;%AppData%\Python\share\sdl2\bin;
ke PATH
:
cmd /C "PATH=%AppData%\Python\share\glew\bin;%AppData%\Python\share\sdl2\bin;%PATH% && python3 -c ^"from kivy.core.window._window_sdl2 import _WindowSDL2Storage^""
Tapi sayangnya ini bukan solusi per se
BAGAIMANA pip-installed-python-libraries seharusnya masuk ke PATH
yang harus mereka gunakan untuk berfungsi? (Reboot tidak cukup)
Itu hanya petunjuk bagi saya untuk mengetahui apakah perpustakaan benar-benar diblokir atau tidak. Untung mereka tidak.
Seperti yang dikatakan di atas (poin 2.), Anda dapat melihat bahwa jika Anda membuka __init__.py
di site-packages\kivy\deps\...
, tetapi itu seharusnya berhasil. Sekarang saya perlu menemukan cara untuk memecahkan milik saya persis seperti dalam kasus Anda. :senyum:
Apakah ini ada gunanya?
````
impor pdb
pdb.run()
Interupsi Keyboard
domba
Interupsi Keyboard
pdb.run("dari kivy.core.window._window_sdl2 impor _WindowSDL2Storage")(1) ()
(Pdb) s
--Panggilan--(966)_find_and_load()
(Pdb)(968)_find_and_load()
(Pdb)
--Panggilan--(143)__init__()
(Pdb)(144)__init__()
(Pdb)(145)__init__()
(Pdb)
--Kembali--(145)__init__()->Tidak ada
(Pdb)
--Panggilan--(147)__masuk__()
(Pdb)(148)__masuk__()
(Pdb)
--Panggilan--(157)_get_module_lock()
(Pdb)(163)_get_module_lock()
(Pdb)(164)_get_module_lock()
(Pdb)(165)_get_module_lock()
(Pdb)(166)_get_module_lock()
(Pdb)
Kesalahan Kunci: 'kivy.core.window._window_sdl2'(166)_get_module_lock()
(Pdb)(167)_get_module_lock()
(Pdb)(168)_get_module_lock()
(Pdb)(170)_get_module_lock()
(Pdb)(171)_get_module_lock()
(Pdb)(174)_get_module_lock()
(Pdb)
--Panggilan--(58)__init__()
(Pdb)(59)__init__()
(Pdb)(60)__init__()
(Pdb)(61)__init__()
(Pdb)(62)__init__()
(Pdb)(63)__init__()
(Pdb)(64)__init__()
(Pdb)
--Kembali--(64)__init__()->Tidak ada
(Pdb)(176)_get_module_lock()
(Pdb)(187)_get_module_lock()
(Pdb)(189)_get_module_lock()
(Pdb)(191)_get_module_lock()
(Pdb)
--Kembali--(191)_get_module_lock()->_ModuleLock('... 1869402554208
(Pdb)(149)__masuk__()
(Pdb)
--Panggilan--(78)memperoleh()
(Pdb)(84)memperoleh()
(Pdb)(85)memperoleh()
(Pdb)(86)memperoleh()
(Pdb)(87)memperoleh()
(Pdb)(88)memperoleh()
(Pdb)(89)memperoleh()
(Pdb)(90)memperoleh()
(Pdb)(91) memperoleh()
(Pdb)(92)memperoleh()
(Pdb)(101) memperoleh()
(Pdb)
Kesalahan Kunci: 12616(101) memperoleh()
(Pdb)
--Kembali--(101) memperoleh()->Tidak ada
(Pdb)
Kesalahan Kunci: 12616(149)__masuk__()
(Pdb)
--Kembali--(149)__masuk__()->Tidak ada
(Pdb)
Kesalahan Kunci: 12616(968)_find_and_load()
(Pdb)
--Kembali--(968)_find_and_load()->Tidak ada
(Pdb)
Kesalahan Kunci: 12616(1) ()
(Pdb)
--Kembali--(1) ()->Tidak ada
(Pdb)
Kesalahan Kunci: 12616
c:\program filespython36\lib\bdb.py(434)run()
-> exec(cmd, global, lokal)
(Pdb)
c:\program filespython36\lib\bdb.py(435)run()
-> kecuali BdbQuit:
(Pdb)
c:\program filespython36\lib\bdb.py(438)run()
-> self.quitting = Benar
(Pdb)
Traceback (panggilan terakhir terakhir):
berkas "", baris 1, di
File "C:\Program Files\Python36\lib\pdb.py", baris 1572, sedang dijalankan
Pdb().run(pernyataan, global, lokal)
File "C:\Program Files\Python36\lib\bdb.py", baris 434, sedang dijalankan
exec (cmd, global, lokal)
berkas "", baris 1, di
berkas "", baris 968, di _find_and_load
berkas "", baris 149, di __enter__
berkas "", baris 101, di akuisisi
Kesalahan Kunci: 12616
````
Sehat,
beberapa pengujian lebih lanjut mengungkapkan bahwa itu berfungsi dengan benar jika KEDUA kivy.deps.glew
DAN kivy.deps.sdl2
diinstal dalam mode Administrator.
Saya pikir masalahnya terletak pada terlalu banyak hardcode menjadi site-packages\kivy\deps\*\__init__.py
Saya ingin tahu apakah ada cara yang lebih kanonik untuk menambahkan DLL dari paket Pip ke dalam PATH
...?
Pertanyaan bagus, tapi saya tidak tahu bagaimana tim sampai pada solusi mereka saat ini. Setidaknya kita bisa mempersempitnya sekarang, jadi itu langkah maju.
Omong-omong, apakah Anda akrab dengan virtualenv
. Saya biasanya menggunakan itu dan jarang memiliki masalah. Jadi untuk saat ini yang bisa Anda lakukan (admin):
py -m pip install virtualenv
Akun pengguna normal ( .venv
adalah nama pilihan saya dari direktori virtualenv, ubah sesuka Anda):
py -m virtualenv .venv
.venv\Scripts\activate
python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
python -m pip install kivy
opsional tambahkan: python -m pip install kivy.deps.gstreamer
Semoga saya mengerti.
Konfigurasi windows 10 python 363 (visual studio 2017):
[INFO ] [Logger ] Record log in C:\Users\Laurent\.kivy\logs\kivy_18-08-23_29.txt
[INFO ] [Kivy ] v1.10.1
[INFO ] [Python ] v3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]
[INFO ] [Factory ] 194 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO ] [Window ] Provider: sdl2
[INFO ] [GL ] Using the "OpenGL" graphics system
[INFO ] [GL ] GLEW initialization succeeded
[INFO ] [GL ] Backend used <glew>
[INFO ] [GL ] OpenGL version <b'4.6.0 NVIDIA 390.77'>
[INFO ] [GL ] OpenGL vendor <b'NVIDIA Corporation'>
[INFO ] [GL ] OpenGL renderer <b'GeForce GTX 970/PCIe/SSE2'>
[INFO ] [GL ] OpenGL parsed version: 4, 6
[INFO ] [GL ] Shading version <b'4.60 NVIDIA'>
[INFO ] [GL ] Texture max size <16384>
[INFO ] [GL ] Texture max units <32>
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
[INFO ] [Text ] Provider: sdl2
Standard library module invoked user code during import; breakpoints disabled for invoked code.
[INFO ] [Base ] Start application main loop
[INFO ] [GL ] NPOT texture support is available
[WARNING] [Accordion ] not enough space for displaying all children
[WARNING] [Accordion ] need 132px, got 84px
[WARNING] [Accordion ] layout aborted.
[WARNING] [Accordion ] not enough space for displaying all children
[WARNING] [Accordion ] need 132px, got 84px
[WARNING] [Accordion ] layout aborted.
[INFO ] [Base ] Leaving application in progress...
The thread 'MainThread' (0x13ec) has exited with code 0 (0x0).
Saya punya masalah yang sama dan saya menyelesaikannya dan solusi saya tidak bagus. Saya menyalin semua dll (share/sdl2 share/angle share/glew share/gstreamer) di repositori dan saya menambahkan repositori ini ke variabel path.
Saya menginstal kivy menggunakan hak admin (https://kivy.org/docs/installation/installation-windows.html) dan saya mencoba menjalankan menggunakan hak pengguna (user laurent ) kemudian terjadi kesalahan: [KRITIS] [Window] Tidak dapat menemukan penyedia Window yang berharga.
sdl2 - ImportError: Beban DLL gagal: Modul yang ditentukan tidak dapat ditemukan.
Menyalin semua dll di folder baru memecahkan masalah. Pertanyaan saya kemudian Bagaimana saya bisa menginstal kivy untuk menjalankan kivy dengan hak istimewa pengguna?
PS maaf saya tidak pandai bahasa Inggris dan python
Omong-omong, apakah Anda akrab dengan
virtualenv
. Saya biasanya menggunakan itu dan jarang memiliki masalah. Jadi untuk saat ini yang bisa Anda lakukan (admin):py -m pip install virtualenv
Akun pengguna normal (
.venv
adalah nama pilihan saya dari direktori virtualenv, ubah sesuka Anda):py -m virtualenv .venv .venv\Scripts\activate python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew python -m pip install kivy
Saya mencoba menggunakan virtualenv dan tidak berhasil. Saya masih mendapatkan kesalahan serupa. Saya juga menambahkan
C:\Program Files\Python37\share\sdl2\bin
danC:\Program Files\Python37\share\angle\bin
ke PATH saya. Dan saya melakukan apa yang menurut saya dilakukan oleh @LaurentBerger , salin kedua file itu ke direktori lain, lalu tambahkan direktori itu ke path. Menggunakan virtualenv dengan dua opsi PATH juga tidak berfungsi untuk saya.
Saya menggunakan python 3.7 jadi saya menginstal kivy.deps.angle
bukannya kivy.deps.glew
Log:
```(venv) C:\Users\henry\Documents\Side Projects\fps>py main.py
[INFO ] [Logger ] Rekam log di C:\Users\henry.kivy\logs\kivy_18-09-15_16.txt
[INFO ] [Kivy ] v1.10.1
[INFO ] [Python ] v3.7.0 (v3.7.0:1bf9cc5093, 27 Juni 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
[INFO ] [Pabrik] 194 simbol dimuat
[INFO ] [Gambar ] Penyedia: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer diabaikan)
[INFO ] [Teks ] Penyedia: sdl2
[INFO ] [Jendela ] Penyedia: sdl2
[KRITIS] [Window ] Tidak dapat menemukan penyedia Window yang berharga.
sdl2 - ImportError: Beban DLL gagal: Modul yang ditentukan tidak dapat ditemukan.
File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core__init__.py", baris 67, di core_select_lib
cls = cls()
File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", baris 140, di __init__
super(WindowSDL, mandiri).__init__()
File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window__init__.py", baris 968, di __init__
self.create_window()
File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", baris 272, di create_window
self.fullscreen, resizable, state)
File "kivy\core\window_window_sdl2.pyx", baris 125, di kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window
File "kivy\graphics\cgl.pyx", baris 52, di kivy.graphics.cgl.cgl_get_backend_name
File "kivy\graphics\cgl.pyx", baris 60, di kivy.graphics.cgl.cgl_get_backend_name
File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\importlib__init__.py", baris 127, di import_module
kembalikan _bootstrap._gcd_import(nama[level:], paket, level)
berkas "
berkas "
berkas "
berkas "
berkas "
berkas "
berkas "
[KRITIS] [Aplikasi] Tidak bisa mendapatkan Jendela, batalkan.
```
Pada masalah ini, saya telah melihat arsitektur pencampuran perpustakaan (Python dalam 64 bit, SDL2 dalam 32 bit), jadi itu pemberhentian pertama. Dan ya, jika Anda mencampur lengkungan, perpustakaan tidak akan digunakan sama sekali dan Kivy tidak akan berfungsi.
Instalasi SDL2 melalui kivy.deps.sdl2 akan berhasil.
Saya menggunakan python 3.7 dan saya mendapatkan kesalahan ini. versi kivy adalah 1.10.1
bagaimana saya harus menyelesaikannya?
sama di sini python 3.7 , versi kivy adalah 1.10.1 dan mencoba semua cara untuk memuat DLL tetapi tidak menunjukkan belas kasihan.
Silakan lihat https://github.com/kivy/kivy/issues/6342.
Ini Memecahkan Masalah Saya Yang Sama dengan yang Anda Hadapi
Semoga ini bisa membantu Anda
Saya memiliki masalah yang sama. Video ini dapat membantu mereka yang visual! https://youtu.be/gt-qndBYrCQ
Punya banyak masalah, tetapi berhasil menyelesaikannya. Inilah yang saya pelajari (menggunakan PyCharm):
1) Anda tidak dapat menginstal Kivy di Python 3.8. Jika Anda memiliki 3,8, kembali ke 3,7.
2) Saya menginstal semua paket yang gambarnya diposting orang lain. Saya akan memposting milik saya di sini. Buka penerjemah proyek Anda dan tekan tombol "+" untuk menambahkan semuanya. Mereka harus berhasil menginstal.
3) Sedang mendapatkan kesalahan sdl2 jendela. Menonton video singkat ini (https://www.youtube.com/watch?v=e_jv8KsYBrs&t=212s) (semoga Tuhan memberkati orang ini) dan mengubah jalur saya di lingkungan sistem saya.
4) Saya kemudian menginstal ulang dependensi dari situs web Kivy -- DAN ITU BEKERJA!!!
Semoga ini bisa membantu seseorang !!!!
Omong-omong, apakah Anda akrab dengan
virtualenv
. Saya biasanya menggunakan itu dan jarang memiliki masalah. Jadi untuk saat ini yang bisa Anda lakukan (admin):py -m pip install virtualenv
Akun pengguna normal (
.venv
adalah nama pilihan saya dari direktori virtualenv, ubah sesuka Anda):py -m virtualenv .venv .venv\Scripts\activate python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew python -m pip install kivy
Saya mencoba menggunakan virtualenv dan tidak berhasil. Saya masih mendapatkan kesalahan serupa. Saya juga menambahkan
C:\Program Files\Python37\share\sdl2\bin
danC:\Program Files\Python37\share\angle\bin
ke PATH saya. Dan saya melakukan apa yang menurut saya dilakukan oleh @LaurentBerger , salin kedua file itu ke direktori lain, lalu tambahkan direktori itu ke path. Menggunakan virtualenv dengan dua opsi PATH juga tidak berfungsi untuk saya.Saya menggunakan python 3.7 jadi saya menginstal
kivy.deps.angle
bukannyakivy.deps.glew
Log:
[INFO ] [Logger ] Record log in C:\Users\henry\.kivy\logs\kivy_18-09-15_16.txt [INFO ] [Kivy ] v1.10.1 [INFO ] [Python ] v3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] [INFO ] [Factory ] 194 symbols loaded [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored) [INFO ] [Text ] Provider: sdl2 [INFO ] [Window ] Provider: sdl2 [CRITICAL] [Window ] Unable to find any valuable Window provider. sdl2 - ImportError: DLL load failed: The specified module could not be found. File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\__init__.py", line 67, in core_select_lib cls = cls() File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", line 140, in __init__ super(WindowSDL, self).__init__() File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\__init__.py", line 968, in __init__ self.create_window() File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\lib\site-packages\kivy\core\window\window_sdl2.py", line 272, in create_window self.fullscreen, resizable, state) File "kivy\core\window\_window_sdl2.pyx", line 125, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window File "kivy\graphics\cgl.pyx", line 52, in kivy.graphics.cgl.cgl_get_backend_name File "kivy\graphics\cgl.pyx", line 60, in kivy.graphics.cgl.cgl_get_backend_name File "C:\Users\henry\DOCUME~1\SIDEPR~1\fps\venv\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 670, in _load_unlocked File "<frozen importlib._bootstrap>", line 583, in module_from_spec File "<frozen importlib._bootstrap_external>", line 1043, in create_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed [CRITICAL] [App ] Unable to get a Window, abort.
Coba salin folder glew,sdl2 dan __init__.py secara manual dari ../site-packages/kivy_deps ke ../site-packages/kivy/deps.
Itu berhasil untuk saya
Komentar yang paling membantu
Sehat,
beberapa pengujian lebih lanjut mengungkapkan bahwa itu berfungsi dengan benar jika KEDUA
kivy.deps.glew
DANkivy.deps.sdl2
diinstal dalam mode Administrator.Saya pikir masalahnya terletak pada terlalu banyak hardcode menjadi
site-packages\kivy\deps\*\__init__.py
Saya ingin tahu apakah ada cara yang lebih kanonik untuk menambahkan DLL dari paket Pip ke dalam
PATH
...?