مرحبًا ، أحاول تشغيل رمز المثال من تثبيت Kivy. التالي هو الخطأ الذي أتلقى مرة أخرى. اي مساعدة ستكون عظيمة لقد حاولت النظر في الاستفسارات السابقة حول مشاكل مماثلة ، ولكن لم يتم اقتراح أي شيء بشأنها حتى الآن.
[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.
الرمز الذي أحاول تشغيله:
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()
ماذا يقول هذا على نظامك (بوويرشيل):
python -m pip freeze | select-string cython
dolang تقول
لم يتم التعرف على "select-string" كأمر داخلي أو خارجي ،
برنامج قابل للتشغيل أو ملف دفعي.
نعم ، آسف لم يكن ذلك واضحًا. تحتاج إلى تنفيذ ذلك في بوويرشيل. إنه بديل موجه DOS.
استخدم Win + x
ثم حدده ، أو اكتب powershell
في موجه الأوامر. سيكون لديك PS
كأول حرفين من الموجه.
حسنا. يقول في بوويرشيل
Cython==0.27.3
حسنًا ، حاولت إعادة إنتاجها في بيئة متشابهة وليست متشابهة بدون حظ. بشكل أساسي ، ما يقوله الخطأ هو أن مكتبة sdl2
مفقودة. ولكن كان يجب تثبيته بـ python -m pip install kivy.deps.sdl2
الموجود في وصفك الأصلي في مكان ما.
سأحاول إعادة إنتاج هذا على جهاز آخر مرة أخرى ، يمكنك محاولة pip uninstall ...
+ pip install ...
تلك التبعية في هذه الأثناء.
حاولت على جهاز آخر الآن ، وحصلت على نفس النتيجة (أي أنها تعمل هنا). ما الذي لديك من اجل:
PS C:\> python -m pip freeze | select-string sdl2
يجب أن يمنحك: kivy.deps.sdl2==0.1.17
.
بدلاً من ذلك ، إذا كان لديك العديد من مترجمي Python المثبتين:
PS C:\> py -3.6 -m pip freeze | select-string sdl2
إذا لم يمنحك أحد هذين الأمرين المخرجات أعلاه ، فحاول إعادة تثبيت kivy.deps.sdl2
.
إذا فعلوا ذلك ولم ينجح الأمر ، فالرجاء لصق ما تحصل عليه:
PS C:\> dir C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36-32\share\sdl2\bin
ربما يتعين عليك إعادة تثبيت مترجم Python 64 بت. (مجرد تخمين ، لست متأكدًا بعد.)
فعلت ذلك و
احصل على kivy.deps.sdl2 == 0.1.17
لقد قمت بإلغاء تثبيت 32 بت وتثبيت Python 64 بت في مكانه ، ومع ذلك ، ما زلت أحصل على هذا الخطأ
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
حسنًا ، لم أكن متأكدًا مما إذا كانت 32/64 بت هي المشكلة هنا. ولكن هل يمكنك معرفة ما إذا كان .dll
موجودًا بالفعل؟
PS C:\> dir C:\Users\dev.DoddJ\AppData\Local\Programs\Python\Python36\share\sdl2\bin
إذا كان هناك ، فربما يقوم ماسح الفيروسات الخاص بك بحظره ، أو جدار الحماية الخاص بك (أو بعض البرامج الأخرى المتطفلة حقًا)؟ هذا ليس شيئًا يجب أن يحدث ، إيمهو.
تحرير: إلقاء نظرة على التثبيت الخاص بي مرة أخرى وفتح تطبيق قيد التشغيل في Process Hacker. تم تصميم SDL2.dll هذا خصيصًا لـ PyPI ويبدو أنه بدون توقيع. اعتمادًا على إعدادات سياسة Windows الخاصة بك ، قد يتم حظره تلقائيًا بسبب ذلك. ربما يمكن أن يساعد ما يلي؟
وفقًا للتعليق السابق ، لديك cython 0.27.3 ويقول سجل وحدة التحكم Kivy v1.10.0 ... هذه الإصدارات غير متوافقة ، على الرغم من أنني لست متأكدًا تمامًا من سبب كون موفر النافذة المفقود هو أول دليل على هذه المشكلة .. .. ربما جرب إما استخدام cython 0.25.2 (متوافق مع 1.10) + إعادة تثبيت kivy ، أو بدلاً من ذلك pip install kivy==master
مع إصدار cython الحالي؟
أتلقى هذه المشكلة أيضًا مع 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 show kivy kivy.deps.glew kivy.deps.sdl2
الاسم: كيفي
الإصدار: 1.10.0
الملخص: مكتبة برامج للتطوير السريع لتطبيقات اللمس المتعدد المسرَّعة بالأجهزة.
الصفحة الرئيسية: http://kivy.org
المؤلف: فريق Kivy ومساهمين آخرين
المؤلف البريد الإلكتروني: [email protected]
الترخيص: MIT
الموقع: c: \ users \ jedingtoappdata \ roaming \ python \ python36 \ site -pack
يتطلب: docutils ، Kivy-Garden ، pygments
الاسم: kivy.deps.glew
الإصدار: 0.1.9.2
ملخص: التبعية الثنائية المعاد تجميعها لـ Kivy.
الصفحة الرئيسية: http://kivy.org/
المؤلف: Kivy Crew
المؤلف البريد الإلكتروني: [email protected]
الترخيص: MIT
الموقع: c: \ users \ jedingtoappdata \ roaming \ python \ python36 \ site -pack
يتطلب:
الاسم: kivy.deps.sdl2
الإصدار: 0.1.17.1
ملخص: التبعية الثنائية المعاد تجميعها لـ Kivy.
الصفحة الرئيسية: http://kivy.org/
المؤلف: Kivy Crew
المؤلف البريد الإلكتروني: [email protected]
الترخيص: zlib
الموقع: c: \ users \ jedingtoappdata \ roaming \ python \ python36 \ site -pack
يتطلب:
مطلوب من قبل:
""
تشغيله يعطي ما يلي:
""
Python 3.6.5 (v3.6.5: f59c0932b4 ، 28 مارس 2018 ، 17:00:18) [MSC v.1900 64 بت (AMD64)] على win32
اكتب "مساعدة" أو "حقوق طبع ونشر" أو "ائتمانات" أو "ترخيص" لمزيد من المعلومات.
من تطبيق استيراد kivy.app
[INFO] [المسجل] سجل الدخول 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 مارس 2018 ، 17:00:18) [MSC v.1900 64 بت (AMD64)]
[INFO] [المصنع] تم تحميل 194 رمزًا
[INFO] [صورة] الموفرون: img_tex ، img_dds ، img_gif (تم تجاهل img_sdl2 ، img_pil ، img_ffpyplayer)
من أداة استيراد kivy.uix.widget
فئة PongGame (القطعة):
... نجاح
...
فئة PongApp (التطبيق):
... def build (self):
... عودة PongGame ()
...
PongApp (). run ()
[حاسمة] [نافذة] غير قادر على العثور على أي مزود Window ذي قيمة.
sdl2 - خطأ استيراد: فشل تحميل DLL: تعذر العثور على الوحدة النمطية المحددة.
ملف "C: \ Users \ jedingtoAppData \ Roaming \ Python \ Python36 \ site -pack \ kivy \ core__init __. py" ، السطر 59 ، في core_select_lib
fromlist = [modulename] ، المستوى = 0)
ملف "C: \ Users \ jedingtoAppData \ Roaming \ Python \ Python36 \ site -pack \ kivy \ core \ window \ window_sdl2.py" ، السطر 26 ، في
من kivy.core.window._window_sdl2 import _WindowSDL2Storage
[حرجة] [التطبيق] تعذر الحصول على نافذة ، إحباط.
""
على الرغم من وجود SDL2 DLL:
""
dir٪ AppData٪ \ Python \ shareddl2 \ bin \ SDL2.dll
الحجم في محرك الأقراص C هو XXXXXX
الرقم التسلسلي لوحدة التخزين هو 0000-0000
دليل C: \ Users \ USERAppData \ Roaming \ Python \ shareddl2 \ bin
2018-05-17 11:33 صباحًا 1،254،400 SDL2.dll
1 ملف (ملفات) 1،254،400 بايت
0 درهم 161،199،689،728 بايت مجانًا
""
ويجب أن أضيف أن هذا يحدث حتى إذا قمت بإلغاء تثبيت kivy.deps.sdl
من وضع --user
وقمت بتثبيته في C:\Program Files\Python\share\sdl2
عبر وضع المسؤول ، فإن الخطأ هو نفسه:
""
PongApp (). run ()
[حاسمة] [نافذة] غير قادر على العثور على أي مزود Window ذي قيمة.
sdl2 - خطأ استيراد: فشل تحميل DLL: تعذر العثور على الوحدة النمطية المحددة.
ملف "C: \ Users \ jedingtoAppData \ Roaming \ Python \ Python36 \ site -pack \ kivy \ core__init __. py" ، السطر 59 ، في core_select_lib
fromlist = [modulename] ، المستوى = 0)
ملف "C: \ Users \ jedingtoAppData \ Roaming \ Python \ Python36 \ site -pack \ kivy \ core \ window \ window_sdl2.py" ، السطر 26 ، في
من kivy.core.window._window_sdl2 import _WindowSDL2Storage
[حرجة] [التطبيق] تعذر الحصول على نافذة ، إحباط.
""
لا ينجح الأمر حتى إذا دخلت إلى الدليل بجوار cd
SDL2.dll
قبل تشغيل python3
مباشرة
حسنًا ، هناك العديد من الأشياء التي تعمل هنا:
.dll
موجودًا في هذا الدليل...\site-packages\kivy\deps\sdl2\__init__.py
والنقاط إلى .dll
حتى الآن لم أتمكن من إعادة إنتاجه ، لكن 3. شيء لا يمكن استبعاده.
شيء آخر يمكنك تجربته: افتح موجه الأوامر وقم بتوجيه المسار مباشرة إلى المجلد sdl2. شيء مثل:
\> set PATH=C:\Users\USER\AppData\Roaming\Python\share\sdl2\bin;%PATH%
dolang حسنًا ، يبدو أن إضافة المجلد SDL2.dll
إلى %PATH%
يصلح .... جزء من هذا الخطأ. img_sdl2
لم يعد "متجاهلاً" الآن ، لكنه لا يزال "غير قادر على العثور على أي موفر خدمة ذي قيمة لـ Window". كما أنه أعطى بعض رسائل الخطأ المختلفة قليلاً (الموسعة بشكل حصري تقريبًا؟)
[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
لقد أكدت من خلال إضافة وإزالة ذلك من المسار بشكل متكرر أن وجود img_sdl2
في قسم "التجاهل" يعتمد على ذلك ، وأن نص الخطأ الموسع يظهر أو يختفي اعتمادًا على ما إذا كان يمكنه العثور على SDL2 أم لا.
الآن ، يجب أن يكون للتبعية glew
مجلد بجوارها مباشرة ( share\glew\bin
). ماذا يحدث إذا أضفت ذلك أيضًا؟
آها!
لذلك ، في نظام التشغيل Windows ، يمكن "حلها" عن طريق إرسال %AppData%\Python\share\glew\bin;%AppData%\Python\share\sdl2\bin;
إلى 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^""
لكن للأسف هذا ليس حلاً في حد ذاته
كيف يفترض أن تشق مكتبات python المثبتة بنقطة طريقها إلى PATH
الذي يجب أن تكون فيه لتعمل؟ (إعادة التشغيل كانت غير كافية)
كان هذا مجرد دليل بالنسبة لي لمعرفة ما إذا كانت المكتبات محظورة بالفعل أم لا. الشيء الجيد أنهم ليسوا كذلك.
كما ذكرنا أعلاه (النقطة 2.) ، يمكنك أن ترى أنه إذا فتحت __init__.py
في site-packages\kivy\deps\...
، لكن هذا يجب أن يعمل خارج الصندوق. الآن أنا بحاجة إلى إيجاد طريقة لكسر خاصتي تمامًا كما في حالتك. :ابتسامة:
هل هذا مفيد؟
""
استيراد pdb
pdb.run ()
لوحة المفاتيح المقاطعة
خروف
لوحة المفاتيح المقاطعة
pdb.run ("من kivy.core.window._window_sdl2 import _WindowSDL2Storage")(1) ()
(PDB) s
--يتصل--(966) _find_and_load ()
(PDB)(968) _find_and_load ()
(PDB)
--يتصل--(143) __ init __ ()
(PDB)(144) __ init __ ()
(PDB)(145) __ init __ ()
(PDB)
--يعود--(145) __ init __ () -> لا شيء
(PDB)
--يتصل--(147) __ أدخل __ ()
(PDB)(148) __ أدخل __ ()
(PDB)
--يتصل--(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)
KeyError: "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)
--يتصل--(58) __ init __ ()
(PDB)(59) __ init __ ()
(PDB)(60) __ init __ ()
(PDB)(61) __ init __ ()
(PDB)(62) __ init __ ()
(PDB)(63) __ init __ ()
(PDB)(64) __ init __ ()
(PDB)
--يعود--(64) __ init __ () -> لا شيء
(PDB)(176) _get_module_lock ()
(PDB)(187) _get_module_lock ()
(PDB)(189) _get_module_lock ().
(PDB)(191) _get_module_lock ()
(PDB)
--يعود--(191) _get_module_lock () -> _ ModuleLock ('... 1869402554208)
(PDB)(149) __ أدخل __ ()
(PDB)
--يتصل--(78) اقتناء ()
(PDB)(84) اقتناء ()
(PDB)(85) اقتناء ()
(PDB)(86) اقتناء ()
(PDB)(87) اقتناء ()
(PDB)(88) اقتناء ()
(PDB)(89) اقتناء ()
(PDB)(90) يكتسب ()
(PDB)(91) اقتناء ()
(PDB)(92) اقتناء ()
(PDB)(101) اقتناء ()
(PDB)
KeyError: 12616(101) اقتناء ()
(PDB)
--يعود--(101) يكتسب () -> لا شيء
(PDB)
KeyError: 12616(149) __ أدخل __ ()
(PDB)
--يعود--(149) __ أدخل __ () -> بلا
(PDB)
KeyError: 12616(968) _find_and_load ()
(PDB)
--يعود--(968) _find_and_load () -> بلا
(PDB)
KeyError: 12616(1) ()
(PDB)
--يعود--(1) () -> بلا
(PDB)
KeyError: 12616
ج: \ program filespython36 \ lib \ bdb.py (434) run ()
-> exec (cmd ، globals ، السكان المحليون)
(PDB)
ج: \ program filespython36 \ lib \ bdb.py (435) run ()
-> باستثناء BdbQuit:
(PDB)
c: \ program filespython36 \ lib \ bdb.py (438) تشغيل ()
-> الاستسلام الذاتي = صحيح
(PDB)
Traceback (آخر مكالمة أخيرة):
ملف ""، السطر 1 ، في
ملف "C: \ Program Files \ Python36 \ lib \ pdb.py" ، السطر 1572 ، قيد التشغيل
Pdb (). run (البيان ، الكرة الأرضية ، السكان المحليون)
ملف "C: \ Program Files \ Python36 \ lib \ bdb.py" ، السطر 434 ، قيد التشغيل
exec (cmd ، globals ، السكان المحليون)
ملف ""، السطر 1 ، في
ملف ""، السطر 968 ، في _find_and_load
ملف ""، السطر 149 ، في __وسط__
ملف ""، السطر 101 ، قيد الاقتناء
KeyError: 12616
""
نحن سوف،
تظهر بعض الاختبارات الإضافية أنها تعمل بشكل صحيح إذا تم تثبيت كلا من kivy.deps.glew
و kivy.deps.sdl2
في وضع المسؤول.
أعتقد أن المشكلة تكمن في تحويل الكثير من الترميز إلى site-packages\kivy\deps\*\__init__.py
أتساءل عما إذا كانت هناك طريقة أكثر تقليدية لإضافة مكتبات DLL من حزم Pip إلى PATH
...؟
سؤال جيد ، لكني لا أعرف كيف توصل الفريق إلى الحل الحالي. على الأقل يمكننا تضييقه الآن ، لذا فهذه خطوة للأمام.
بالمناسبة ، هل أنت على دراية بـ virtualenv
. أنا عادة أستخدمها ونادرا ما أواجه مشاكل. حتى الآن يمكنك أن تفعل (المشرف):
py -m pip install virtualenv
حساب المستخدم العادي ( .venv
هو الاسم المفضل لدي في دليل virtualenv ، قم بتغييره كما تريد):
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
أضف اختياريًا: python -m pip install kivy.deps.gstreamer
آمل أن أكون قد فهمت ذلك جيدًا.
تكوين 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).
لدي نفس المشكلة وقمت بحلها والحل الخاص بي ليس حلاً جيدًا. أقوم بنسخ جميع ملفات dll (مشاركة / sdl2 مشاركة / مشاركة زاوية / مشاركة glew / gstreamer) في مستودع وأضيف هذا المستودع إلى متغير المسار.
لقد قمت بتثبيت kivy باستخدام حق المسؤول (https://kivy.org/docs/installation/installation-windows.html) وحاولت التشغيل باستخدام حق المستخدم (user laurent) ثم حدث الخطأ: [CRITICAL] [Window] تعذر العثور على أي مزود نافذة قيم.
sdl2 - خطأ استيراد: فشل تحميل DLL: تعذر العثور على الوحدة النمطية المحددة.
يؤدي نسخ كافة ملفات dll في مجلد جديد إلى حل المشكلات. سؤالي إذن كيف يمكنني تثبيت kivy لتشغيل kivy بامتياز المستخدم؟
ملاحظة: آسف أنا لست جيدًا في اللغة الإنجليزية والثعبان
بالمناسبة ، هل أنت على دراية بـ
virtualenv
. أنا عادة أستخدمها ونادرا ما أواجه مشاكل. حتى الآن يمكنك أن تفعل (المشرف):py -m pip install virtualenv
حساب المستخدم العادي (
.venv
هو الاسم المفضل لدي في دليل virtualenv ، قم بتغييره كما تريد):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
حاولت استخدام virtualenv لكنها لم تنجح. لا يزال لدي خطأ مماثل. لقد أضفت أيضًا
C:\Program Files\Python37\share\sdl2\bin
وC:\Program Files\Python37\share\angle\bin
إلى PATH بالفعل. وفعلت ما أعتقد أنه فعلته @ LaurentBerger ، انسخ هذين الملفين إلى دليل آخر ، ثم أضف هذا الدليل إلى المسار. لم يعمل استخدام virtualenv مع خياري PATH أيضًا.
أنا أستخدم python 3.7 لذلك قمت بتثبيت kivy.deps.angle
بدلاً من kivy.deps.glew
السجلات:
"" (venv) C: \ Users \ henry \ Documents \ Side Projects \ fps> py main.py
[INFO] [المسجل] سجل الدخول 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 يونيو 2018 ، 04:59:51) [MSC v.1914 64 بت (AMD64)]
[INFO] [المصنع] تم تحميل 194 رمزًا
[INFO] [صورة] الموفرون: img_tex ، img_dds ، img_sdl2 ، img_gif (تم تجاهل img_pil ، img_ffpyplayer)
[INFO] [نص] المزود: sdl2
مزود [INFO] [نافذة]: sdl2
[حاسمة] [نافذة] غير قادر على العثور على أي مزود Window ذي قيمة.
sdl2 - خطأ استيراد: فشل تحميل DLL: تعذر العثور على الوحدة النمطية المحددة.
ملف "C: \ Users \ henry \ DOCUME ~ 1 \ SIDEPR ~ 1 \ fps \ venv \ lib \ site -pack \ kivy \ core__init __. py" ، السطر 67 ، في core_select_lib
cls = cls ()
ملف "C: \ Users \ henry \ DOCUME ~ 1 \ SIDEPR ~ 1 \ fps \ venv \ lib \ site -pack \ kivy \ core \ window \ window_sdl2.py" ، السطر 140 ، في __init__
سوبر (WindowSDL ، ذاتي) .__ init __ ()
ملف "C: \ Users \ henry \ DOCUME ~ 1 \ SIDEPR ~ 1 \ fps \ venv \ lib \ site -pack \ kivy \ core \ window__init __. py" ، السطر 968 ، في __init__
self.create_window ()
ملف "C: \ Users \ henry \ DOCUME ~ 1 \ SIDEPR ~ 1 \ fps \ venv \ lib \ site -pack \ kivy \ core \ window \ window_sdl2.py" ، السطر 272 ، في create_window
self.fullscreen ، يمكن تغيير حجمها ، حالة)
ملف "kivy \ core \ window_window_sdl2.pyx" ، السطر 125 ، في kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window
ملف "kivy \ graphics \ cgl.pyx" ، السطر 52 ، في kivy.graphics.cgl.cgl_get_backend_name
ملف "kivy \ graphics \ cgl.pyx" ، سطر 60 ، في kivy.graphics.cgl.cgl_get_backend_name
ملف "C: \ Users \ henry \ DOCUME ~ 1 \ SIDEPR ~ 1 \ fps \ venv \ lib \ importlib__init __. py" ، السطر 127 ، في import_module
إرجاع _bootstrap._gcd_import (الاسم [المستوى:] ، الحزمة ، المستوى)
ملف "
ملف "
ملف "
ملف "
ملف "
ملف "
ملف "
[حرجة] [التطبيق] تعذر الحصول على نافذة ، إحباط.
""
في هذه المسألة ، رأيت خلط معماريات المكتبات (Python في 64 بت ، SDL2 في 32 بت) ، لذا فهذه هي المحطة الأولى. ونعم ، إذا قمت بخلط القوس ، فلن يتم استخدام المكتبات على الإطلاق ولن يعمل Kivy.
يجب أن يعمل تركيب SDL2 عبر kivy.deps.sdl2.
أنا أستخدم python 3.7 ويظهر لي هذا الخطأ. إصدار kivy هو 1.10.1
كيف يمكنني حلها
نفس الشيء هنا python 3.7 ، إصدار kivy هو 1.10.1 وحاول جميع الطرق لتحميل DLL ولكن لا يظهر أي رحمة.
يرجى مراجعة https://github.com/kivy/kivy/issues/6342.
هذا يحل مشكلتي التي هي نفس المشكلة التي واجهتك
ارجوا ان يساعدك هذا
كان لي نفس القضية. قد يساعد هذا الفيديو المرئيين! https://youtu.be/gt-qndBYrCQ
كان لديه العديد من المشكلات ، لكنه تمكن من حلها. هذا ما تعلمته (باستخدام PyCharm):
1) لا يمكنك تثبيت Kivy على Python 3.8. إذا كان لديك 3.8 ، فارجع إلى 3.7.
2) لقد قمت بتثبيت جميع الحزم التي نشر شخص آخر صورة لها. سوف أنشر خاصتي هنا. انتقل إلى مترجم المشروع واضغط على زر "+" لإضافتهم جميعًا. يجب عليهم التثبيت بنجاح.
3) تم الحصول على خطأ النافذة sdl2. شاهدت هذا الفيديو القصير (https://www.youtube.com/watch؟v=e_jv8KsYBrs&t=212s) (بارك الله في هذا الشخص) وغيرت مساراتي في بيئة نظامي.
4) ثم أعدت تثبيت التبعيات من موقع Kivy على الويب - وقد نجحت !!!
أمل أن هذا يساعد شخصاما!!!!
بالمناسبة ، هل أنت على دراية بـ
virtualenv
. أنا عادة أستخدمها ونادرا ما أواجه مشاكل. حتى الآن يمكنك أن تفعل (المشرف):py -m pip install virtualenv
حساب المستخدم العادي (
.venv
هو الاسم المفضل لدي في دليل virtualenv ، قم بتغييره كما تريد):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
حاولت استخدام virtualenv لكنها لم تنجح. لا يزال لدي خطأ مماثل. لقد أضفت أيضًا
C:\Program Files\Python37\share\sdl2\bin
وC:\Program Files\Python37\share\angle\bin
إلى PATH بالفعل. وفعلت ما أعتقد أنه فعلته @ LaurentBerger ، انسخ هذين الملفين إلى دليل آخر ، ثم أضف هذا الدليل إلى المسار. لم يعمل استخدام virtualenv مع خياري PATH أيضًا.أنا أستخدم python 3.7 لذلك قمت بتثبيت
kivy.deps.angle
بدلاً منkivy.deps.glew
السجلات:
[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.
حاول نسخ مجلدات glew و sdl2 و __init__.py يدويًا من ../site-packages/kivy_deps إلى ../site-packages/kivy/deps.
عملت معي
التعليق الأكثر فائدة
نحن سوف،
تظهر بعض الاختبارات الإضافية أنها تعمل بشكل صحيح إذا تم تثبيت كلا من
kivy.deps.glew
وkivy.deps.sdl2
في وضع المسؤول.أعتقد أن المشكلة تكمن في تحويل الكثير من الترميز إلى
site-packages\kivy\deps\*\__init__.py
أتساءل عما إذا كانت هناك طريقة أكثر تقليدية لإضافة مكتبات DLL من حزم Pip إلى
PATH
...؟