Mayavi: دعم Python 3

تم إنشاؤها على ٤ أكتوبر ٢٠١٣  ·  72تعليقات  ·  مصدر: enthought/mayavi

أي خطة لدعم Python 3 لـ Mayavi؟

ستصدر Python إصدار Python 3.4 قريبًا. أعتقد أن Python 3 أصبحت الآن ناضجة جدًا وأن مكتبة الطرف الثالث الرئيسية (numpy ، scipy ، pandas ، matplotlib ، إلخ) تدعمها الآن.

أقوم أيضًا بنقل كل مشروعي ببطء إلى Python 3. إنها مهمة بسيطة جدًا مع تطبيق 2to3 لمشروع "صغير". يمكنك أحيانًا الحصول على بعض التعارض مع ملفات std libs القديمة أو مشكلات متعلقة بدفق unicode / string ولكن لا شيء سيئ ...

أعتقد أنه سيكون أكثر تعقيدًا بعض الشيء نقل مايافي والمشاريع الأخرى ذات الصلة ، لكن لا ينبغي أن يكون الأمر صعبًا للغاية في منتصف المدة.

لا أريد التحدث مع الآخرين ولكني أعتقد أن الكثير من الناس ينتظرون مايافي لنقل مشاريعهم إلى بايثون 3.

"لا تنتظر حتى يتم إصدار Python 4 من فضلك ..."

:-)

هتافات

التعليق الأكثر فائدة

يجب أيضًا أن تكون قادرًا على تعيين متغير env من python قبل استيراد mayavi. http://stackoverflow.com/questions/5971312/how-to-set-environment-variables-in-python

بنغو! هذا ما فعل الحيلة. Thxjenshnielsen = :-)

أفضّل هذا الأسلوب في البرنامج النصي مقارنةً بإجراء إعداد نظام تشغيل على مستوى النظام للمتغير البيئي QT_API ، حيث قد لا أزال أرغب في تطوير pyqt5 في بيئة Anaconda الجذرية.

لذلك ، باختصار لأي شخص فقير مثلي يكافح من أجل تشغيل Mayavi على anaconda python 3.5 ، إليك مقاربتي المقترحة مستخلصة من النصائح المفيدة في التعليقات السابقة:

  1. قم بإنشاء بيئة جديدة (oldqt) والتي تم إرجاعها إلى pyqt4 عن طريق تشغيل الأمر التالي في anaconda root env terminal:
    conda create -n oldqt python=3 pyqt=4

  2. قم بالتبديل إلى البيئة التي تم إنشاؤها حديثًا:
    activate oldqt لنظام التشغيل Windows
    source activate oldqt لنظام التشغيل Mac / Linux

  3. قم بتثبيت mayavi باستخدام مثبت حزمة menpo:
    conda install -c menpo mayavi

  4. استخدم oldqt env لتشغيل نصوص python mayavi ، وقم بتضمين المقتطف أدناه في الجزء العلوي من هذه البرامج النصية لضمان تحديد QT API صالح لـ mayavi:

import os
os.environ["QT_API"] = "pyqt"

ال 72 كومينتر

hadim خطط Mayavi على Python 3 مرتبطة بكون VTK متاحًا على Python 3. خارطة الطريق للوصول إلى هناك غير واضحة. راجع http://www.vtk.org/Wiki/VTK/Python_Wrapping_FAQ.

: +1:

: +1:

: +1:

لا أعتقد أن: إبهام اليد: هنا ذهب افعل الكثير. يجب عليك بدلاً من ذلك محاولة إقناع Kitware بدعم python3 في VTK. بدون ذلك لا توجد فرصة لنسخة python3 من Mayavi.

لا أعتقد أن: إبهام اليد: هنا ذهب افعل الكثير. يجب أن تحاول بالأحرى
إقناع Kitware بدعم python3 في VTK. بدون ذلك لا يوجد أي
فرصة لنسخة python3 من Mayavi.

شكرا للتأكيد على ذلك!

ربما يمكنك توفير رابط لتقرير الأخطاء المناسب في VTK حول نقله إلى Python 3 ، لإعادة توجيه المستخدمين الذين يقولون +1 هناك؟

للسجل فتحت تذكرة على VTK bug tracker: http://www.vtk.org/Bug/view.php؟id=15554

أخبار رائعة! قام David Gobbi (المشرف على روابط VTK Python) بالرد على بطاقة الخطأ تلك وذكر أنه قد أرسل بالفعل طلبات دمج لإعداد الارتباطات لدعم Py3 ، وهو يعمل بشكل ملموس على دعم Py3 بدءًا من نهاية هذا الأسبوع:
http://www.vtk.org/Bug/view.php؟id=15554#c34787

أتفهم تمامًا أن هذه مجرد بداية للعملية وقد يستغرق الأمر بعض الوقت قبل أن يصل دعم Python 3 إلى إصدار VTK ، لكنني أتساءل عما إذا كان هناك أي شيء يمكن أن تفعله Mayavi بنشاط لتحضير نفسها لـ Python 3؟ أعتبر أنه ستكون هناك تغييرات مطلوبة على قاعدة كود Mayavi نفسها لدعم Python 3 ، هل يستحق الأمر بدء مناقشة حول ماهية هذا العمل؟

شكرا jabooth ،

بقدر ما أستطيع أن أقول أن الصورة الكاملة لانتقال Mayavi إلى Python 3 تعتمد على التبعيات الرئيسية التي تدعم Python 3. الحالة الحالية هي:

  • [] بيثون vtk
  • [x] سمات
  • [x] سمات
  • [x] الحاشية
  • [ ] تصور

تعتبر ارتباطات Python 3 VTK هي الجزء الرئيسي وحقيقة أن هناك عملًا جاريًا يعد خبرًا جيدًا ، ولكن بدون الارتباطات المتوفرة في إصدار ثابت من VTK ، سيكون من الصعب جدًا العمل والاختبار على Python 3 الصديقة Mayavi.

علاوة على ذلك ، تعتمد Mayavi نفسها بشكل كبير على السمات و traitsui و pyface التي تحتاج أيضًا إلى دعم python 3. بينما يوجد عمل قيد التقدم في هذه المكتبات ، فإن الدعم ليس موجودًا بعد.

_ ومع ذلك_ ، ما يمكننا القيام به في هذه اللحظة (و dmsurti بدأ بالفعل) هو إصلاح الأخطاء المعلقة وتحسين تغطية الاختبار وتبسيط قاعدة كود Mayavi بحيث عندما تكون التبعيات متاحة في Python 3 ، سيكون الجهد المبذول لنقل Mayavi إلى Python 3 أقل.

يمكنك أيضًا القيام بأشياء مثل التبديل إلى "من الاستيراد المستقبلي
print_function ، والتقسيم "، والتخلص من أي واردات نسبية ، والتبديل
كل شيء يصل إلى ستة.

أعتقد أن القيام بأي شيء الآن هو مضيعة للوقت. لا يقوم Mayavi بالكثير مما لا يمكن إصلاحه في يوم عمل ، والمشكلة الأكبر هي دعم VTK لـ Python 3 وبمجرد توفر ذلك ، سنقوم بإجراء التغيير اللازم. بدون VTK ، لن نتمكن من الاختبار. أنا على علم بعمل David Gobbi الأخير ولكني سأنتظر حتى يتم دعمه رسميًا ودمجه في VTK.

يبدو أن فرع python-py3k قد تم دمجه للتو: https://gitlab.kitware.com/vtk/vtk/merge_requests/478

هل من احد يعرف مكانة tvtk؟ إذا تمكنت أخيرًا من الانتقال إلى py3k هذا العام ، فسيكون ذلك رائعًا جدًا!

$ python
Python 3.4.3 (default, Mar 25 2015, 17:13:50) 
[GCC 4.9.2 20150304 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import vtk
>>>

نعم!

هل هناك أي تقدم في هذا؟ يبدو أن دعم Python 3 سيكون في الإصدار الثانوي التالي vtk 6.3.1.

انظر # 250

تم دمج طلب السحب رقم 250. إغلاق.

فقط بعض ردود الفعل ايجابية سريعة
أنا أستخدم WinPython-64bit-3.4.4.1 مع Mayavi 4.4.4 وهو يعمل بشكل جيد. شكرا لجميع المطورين!

1.) VTK-7.0.0-cp34-cp34m-win_amd64.whl (http://www.lfd.uci.edu/~gohlke/pythonlibs/#vtk)
2.) نقطة تثبيت مايافي

IVIUPPET ،
هل الحل المذكور هنا
https://github.com/enthought/mayavi/pull/250#issuecomment -207719214
حل المشكلة؟

تضمين التغريدة

لم أجربها حتى الآن ، لكنني عدت إلى هنا لنشر نتائج عملي ليتبعها الآخرون ، قادمون من خلفية بايثون محدودة للغاية ، لكنني تجربة مع Matlab و C #.

لقد تلقيت خطأ غير مدعوم في النظام الأساسي علقت عليه ثم تم حذفه على الفور ، لأنني كنت أحاول استخدام الرابط الخاص بك (لـ Python 3.4) مع Python 3.5
لكنني أقدر ردك. التعليق مع الإعداد الخاص بي للمتابعة.

لقد قمت بتثبيت / أنا أستخدم Anaconda for Python 3.5. الإصدار 3.19.1. لقد استخدمت النقطة 8.1.1. (ليس هذا أيًا من هذين المهمين كثيرًا). 64 بت كلما أمكن ذلك.

ثم قمت بتنزيل:
1) VTK-7.0.0-cp35-cp35m-win_amd64.whl
من: http://www.lfd.uci.edu/~gohlke/pythonlibs/#vtk
إصدار python 3.5 64 بت من VTK ، وهو تبعية حرجة لـ Mayavi (شكرًا لك solarjoe!)

القرص المضغوط للتنزيل
تثبيت Pip VTK-7.0.0-cp35-cp35m-win_amd64.whl

لقد استغرقت بعض الشيء لحل مشكلة غياب vcvarsall.bat ، والتي كانت هي المشكلة التالية التي واجهتها بمجرد أن وجدت هذا الموضوع للحصول على VTK يعمل مع python 3.5. حاولت إضافة أشياء إلى متغيرات البيئة المختلفة ، وتثبيت إصدارات قديمة من Visual Studio. لم يعمل. انتهى الأمر للتو بالحصول على Visual Studio Community 2015 ، والذي يحتوي على مترجم C ++ لـ Python 3.5. أعلم ، إنه مبالغة ، لكنني أمضيت ساعات في القيام بالأشياء الأخرى ، لذلك بالنسبة لي كان هذا هو الطريق الأقل مقاومة (أنا EE). أثناء التثبيت ، تأكد من إجراء "مخصص" ثم ضمن "لغات البرمجة" ، تحقق من أي شيء له علاقة بـ Python أو C ++.

2) نقطة تثبيت مايافي

انها عملت. بعد يوم من البحث في googling ، حصلت أخيرًا على رسم بياني ثلاثي الأبعاد يبدو أنه يتطابق مع Matlab أو يتجاوزه! اكتمل الانتقال من Matlab إلى Python: D.

أثناء قراءتي لتعليقاتIVIUPPET أعلاه ، تذكرت كيفية التعامل مع ألم "تعذر العثور على vcvarsall.bat" . على الرغم من أنني لست متأكدًا ، إلا أنني اعتقدت أن هذا المنشور قد يساعد.

بعد تثبيت Mayavi في Anaconda python 3.5 باتباع تعليمات IVIUPPET المفيدة ، لقد أصطدمت بحاجز طريق في تشغيله بالفعل.

عندما أقوم باستيراد mayavi ، أحصل على خطأ وقت التشغيل التالي:
RuntimeError: Invalid Qt API 'pyqt5', valid values are: 'pyqt' or 'pyside'

هل لا يعمل Mayavi تحت pyqt5 (وهو الإعداد الافتراضي أناكوندا)؟ إذا كان الأمر كذلك ، فهل يجب أن أقوم بتثبيت pyqt4 وكيف يمكنني ترشيح pyqt4 باعتباره Qt API؟

dreme لسوء الحظ ، لم برامجي ، ولكن بناءً على مسح الوثائق ، يبدو أنه لا يزال هناك بعض العمل الذي يتعين القيام به للانتقال إلى QT5. لن أتفاجأ إذا كان هناك بعض عدم التوافق مع مايافي ، ولكن لا يبدو أن خطأك يوحي بذلك لي. حاول بدون mayavi عزل المشكلة أو الاتصال بالمساعدة المتعلقة بـ QT ، أود أن أحصل على واجهة مستخدم رسومية في النهاية عندما أترك الكود الخاص بي لمختبري بمجرد مغادرتي. إذا وجدت عدم توافق مع Mayavi وكان الحل الأفضل من ذلك ، فيرجى إبلاغنا بذلك!

شكرا على الرد IVIUPPET.

أعتقد أنني سأحاول أولاً تثبيت Qt4. نتمنى ألا يؤدي ذلك إلى حدوث اشتباكات برمجية سيئة مع Qt5 من Anaconda's

أيضًا ، عند تجميع VTK ، يمكنك تحديد ما إذا كنت تريد عناصر واجهة مستخدم Qt4 أو Qt5 في وقت الترجمة ، على ما أعتقد.

حسنًا ، لقد حاولت تجميع VTK من المصدر (http://www.vtk.org/download/) باستخدام الإرشادات الموجودة على http://www.vtk.org/Wiki/VTK/Building/Windows

ومع ذلك ، لم أستطع رؤية أي خيار لتحديد عناصر واجهة مستخدم Qt5 ، وفشلت عملية الترجمة (باستخدام Microsoft Visual Studio Community 2015) على أي حال.

115>  Generating Code...
115>LINK : fatal error LNK1104: cannot open file '..\..\lib\Debug\vtkViewsCore-7.1.lib'
117>------ Build started: Project: ALL_BUILD, Configuration: Debug Win32 ------
117>  Building Custom Rule C:/MyProjects/VTK-src/CMakeLists.txt
117>  CMake does not need to re-run because C:\MyProjects\CMakeFiles\generate.stamp is up-to-date.
========== Build: 18 succeeded, 99 failed, 0 up-to-date, 0 skipped ==========

قد ترغب في تشغيل VTK_Group_Qt ، ثم ضبط VTK_QT_VERSION على 5 (الافتراضي هو 4). لقد قمت بتطوير وتغليف Tomviz ، والذي يستخدم Qt 5 مع VTK / ParaView لبعض الوقت الآن. إنه يعمل بشكل جيد ، هناك بعض الأخطاء التي نحتاج إلى إصلاحها. نحن أيضًا نبني باستخدام Visual Studio 2015 على نظام التشغيل Windows وكان ذلك لبضعة أشهر حتى الآن.

شكرا @ كريوس!

أنا لست مبرمجًا بلغة C ++ ولدي خبرة تقريبًا صفرية في تجميع البرامج ، لذلك إذا كنت لا تمانع في أن لدي سؤال متابعة.

عندما تقول "قم بتشغيل VTK_Group_Qt ، ثم قم بتعيين VTK_QT_VERSION على 5" ماذا تقصد بالضبط ؟ أرى أن شروط VTK_Group_Qt وVTK_QT_VERSION تظهر في عدد كبير من الملفات CMakeLists.txt، وكذلك في ملفات vtkiOS.cmake، vtkAndroid.cmake، VTKConfig.cmake.in وvtkQt.cmake.

أسهل طريقة هي استخدام cmake-gui ، وتوجيهه إلى دليل الإنشاء. قد ترغب في النقر فوق VTK_Group_Qt لوضع علامة اختيار في المربع ، والنقر فوق تكوين ، ثم سيظهر VTK_QT_VERSION كمتغير جديد. بدلاً من ذلك ، يمكن استخدام سطر أوامر CMake مثل ما يلي

cmake -DVTK_Group_Qt:BOOL=ON -DVTK_QT_VERSION:STRING=5 C:/path/to/vtk/src

يتم تخزينها جميعًا في CMakeCache.txt في دليل الإنشاء ، ولكن يمكن استخدام cmake-gui و cmake command line وما إلى ذلك لمعالجتها. ستحتاج أيضًا إلى تشغيل التفاف Python بنفس الطريقة. أتمنى أن يكون ذلك أكثر وضوحا.

dreme هل أنت متأكد أنك تريد ترجمة VTK لاستخدام Qt5؟ تدعم Mayavi / ETS Qt4 فقط (أو WX): https://github.com/enthought/mayavi/issues/450 . آسف إذا فاتني شيء ...

شكرا لصبركcryos. لم أكن أدرك أن برنامج cmake-gui يتم توفيره أيضًا عند تثبيت cmake.

حسنًا ، لقد بدأت cmake-gui ، وأشرت إلى المصدر (C: / MyProjects / VTK-src) وبناء مجلدات (C: / MyProjects / VTK-bin).

ومع ذلك ، عندما أنقر على الزر Configure أحصل على مجموعة من رسائل الخطأ (انظر المرفقة).

أنا أيضًا لا أرى مصطلح VTK_Group_Qt بين المتغيرات المدرجة (انظر الصورة المرفقة).

cmakegui

هل سأحتاج إلى إضافته باستخدام الزر Add Entry ؟

يبدو أنه لا يمكن العثور على مترجمي C أو C ++. لم يكونوا موجودين لأنهم فشلوا بالفعل في وقت مبكر ، لقد قلت إنك كنت تستخدم Visual Studio 2015 ، لكن المولد الموجود في لقطة الشاشة يقول Visual Studio 2017 (وهو جديد حقًا ، وأنا سأتجنبه في الوقت الحالي). ربما تحتاج إلى حذف شجرة التصميم ، والبدء مرة أخرى ولكن حدد Visual Studio 2015.

مرحبًا jonathanrocher ، هدفي النهائي هو تشغيل mayavi تحت anaconda python 3.5 ، مثلما يبدو أن IVIUPPET قادرة على القيام به.

باتباع تعليماته ، تمكنت من تثبيت mayavi OK ، لكن عندما أحاول استيراده ، أحصل على خطأ وقت التشغيل التالي:
RuntimeError: Invalid Qt API 'pyqt5', valid values are: 'pyqt' or 'pyside'

لذلك ، اعتقدت أنه ربما يكون الحل هو تجميع VTK بحيث يستخدم Qt5 تلقائيًا وهو إصدار Qt الافتراضي المشحون مع Anaconda.

لكن كما ترون من التعليقات السابقة ، أنا أتعثر في هذه المهمة ...

هل هناك طريقة لجعل مايافي يستخدم WX بدلاً من ذلك؟

dreme - اختبرت التعليمات التالية باستخدام conda لحزمة pysph (انظر هنا ):

$ conda install -c conda-forge matplotlib jupyter pyside
$ conda install -c menpo mayavi

إذا كان لديك أي مشاكل الرجاء إعلامنا.

مرحبًا prabhuramachandran ، شكرًا على هذه النصيحة ، لكن لا يبدو أنها تعمل من أجلي.

عندما دخلت: conda install -c conda-forge matplotlib jupyter pyside

تلقيت رسالة الخطأ التالية:

Fetching package metadata ...........
Solving package specifications: ....

UnsatisfiableError: The following specifications were found to be in conflict:
  - matplotlib
  - python 3.5*
Use "conda info <package>" to see the dependencies for each package.

لا يبدو أنه يحب python 3.5 ، لذلك قمت بإنشاء بيئة جديدة لـ python 3.4 ، والتي نجح فيها أمرا تثبيت conda بالفعل ، على سبيل المثال:

$ conda install -c conda-forge matplotlib jupyter pyside
$ conda install -c menpo mayavi

ومع ذلك ، عندما أحاول استيراد mayavi في jupyter notebok ، ما زلت أحصل على نفس خطأ وقت التشغيل القديم:
RuntimeError: Invalid Qt API 'pyqt5', valid values are: 'pyqt' or 'pyside'

مرحبًا dreme ، لقد صنعت mayavi على قناة menpo .

لقد واجهنا نفس المشكلة. كان الحل بالنسبة لنا هو فرض تخفيض في pyqt بعد التثبيت ، لذلك

> conda install -c menpo mayavi
> conda install pyqt=4.11.4

لقد وجدت أن التخفيض النهائي لعب بشكل جيد مع كل شيء آخر ، على الأقل مأخوذ من قناة أناكوندا القياسية وقناتنا.

في الواقع ، لدى scienceopen حل أكثر أناقة إذا كنت سعيدًا بعمل بيئة جديدة هنا https://github.com/enthought/mayavi/issues/448#issuecomment -258065329 (اتضح أنه يمكنك طلب بيئة QT4 من get- يذهب)

نعم ، إن استخدام بيئة QT4 هو السبيل للذهاب. ثم يمكنك استخدام QT5 لعمل HiDPI non-Mayavi.

ممتن لدعم Python 3 ؛ نأمل أن يستغرق دعم QT5 أقل من ثلاث سنوات

أيضًا ، كما ذكرت أعلاه (https://github.com/enthought/mayavi/issues/84#issuecomment-205720564) إذا كنت تستخدم Windows ولست ملزمًا بـ Anaconda ، فمن السهل حقًا جعل Mayavi تعمل مع WinPython.

مرحبًا بالجميع ، شكرًا على مساعدتك المستمرة في حل هذه المشكلة. نقدر ذلك حقا.

جربت كلاً من الحلين المقدمين من

C:\Users\dreme\Anaconda3\envs\py34\lib\site-packages\traitsui\qt4\__init__.py in <module>()
     16 # import pyface.qt before anything else is done so the sipapi
     17 # can be set correctly if needed
---> 18 import pyface.qt
     19 
     20 #----------------------------------------------------------------------------

C:\Users\dreme\Anaconda3\envs\py34\lib\site-packages\pyface\qt\__init__.py in <module>()
     42 elif qt_api != 'pyside':
     43     raise RuntimeError("Invalid Qt API %r, valid values are: 'pyqt' or 'pyside'"
---> 44                        % qt_api)

RuntimeError: Invalid Qt API 'pyqt5', valid values are: 'pyqt' or 'pyside'

[لا أعرف ما إذا كان هذا مهمًا ، لكني أشغل الكود الخاص بي في دفتر Jupyter]

أنا حقًا أحب توزيع Anaconda python ، لكنني وصلت إلى النقطة التي أصبحت فيها جاهزًا في اليأس للتبديل إلى WinPython (لا أعتقد أنه سيئ بالضرورة) كما اقترح solarjoe .

في هذه الحالة solarjoe ، ما المثبت الذي WinPython 3.5.2.3Qt5 أو WinPython 3.5.2.3 ؟

dreme أفترض بعد أن فعلت

conda create -n oldqt python=3 pyqt=4

أنك قمت بتنشيط تلك البيئة باستخدام (لنظام التشغيل Windows)

activate oldqt

أو لنظام التشغيل Mac / Linux

source activate oldqt

هل قمت بتعيين المتغير البيئي QT_API على شيء ما؟ راجع https://github.com/enthought/pyface/blob/master/pyface/qt/__init__.py لمعرفة المنطق المستخدم.

dreme أفترض بعد أن فعلت

كوندا يخلق -n oldqt python = 3 pyqt = 4
أنك قمت بتنشيط تلك البيئة باستخدام (لنظام التشغيل Windows)

تفعيل oldqt

نعم ، هذا ما فعلته scienceopen

هل قمت بتعيين المتغير البيئي QT_API على شيء ما؟ راجع https://github.com/enthought/pyface/blob/master/pyface/qt/__init__.py لمعرفة المنطق المستخدم.

كلا ، كل هذا يتم من خلال تثبيت جديد تمامًا لـ anaconda 3.5

لكنني أعتقد أنك قد تكون محقًا في أن لها علاقة بالمتغير QT_API . هل يحتوي دفتر Jupyter على الإعداد الافتراضي لهذا؟ هل يمكنني ربما ضبط هذا على شيء سيكون مناسبًا لـ Mayavi؟

يمكنك دائمًا محاولة تغيير المتغير env. أشك في أن Jupyter يغيرها ولكن ربما شيء آخر. يمكنك فحص القيمة الحالية باستخدام:

echo %QT_API%

وتغييره مع

set QT_API= pyqt

على windows http://superuser.com/questions/79612/setting-and-getting-windows-environment-variables-from-the-command-prompt

dreme ، أنا أستخدم إصدارًا أقدم ، WinPython-64bit-3.4.4.1 مع Qt4 و Mayavi 4.4.4

1.) VTK-7.0.0-cp34-cp34m-win_amd64.whl (http://www.lfd.uci.edu/~gohlke/pythonlibs/#vtk)
2.) نقطة تثبيت مايافي

يمكنك أيضًا محاولة تثبيت Mayavi من http://www.lfd.uci.edu/~gohlke/pythonlibs/ ، ابحث في الصفحة عن Mayavi. فقط اختر الإصدارات الصحيحة.
لست متأكدًا مما إذا كانوا يعملون مع إصدار Qt5 من WinPython. ربما يتعين عليك تثبيت http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4 بعد ذلك.

يمكنك دائمًا محاولة تغيير المتغير env. أشك في أن Jupyter يغيرها ولكن ربما شيء آخر. يمكنك فحص القيمة الحالية باستخدام:

صدى٪ QT_API٪
وتغييره مع

ضبط QT_API = pyqt

حسنًا ، هذا يقودني للجنون. لقد قمت بتعيين متغير بيئة windows لـ QT_API إلى pyqt كما نصح jenshnielsen ، SET .

لكن fmd ، ما زلت أحصل على نفس خطأ وقت التشغيل القديم الذي يشكو من أن Qt API هو pyqt5 . راجعت مرة أخرى في محطة cmd ، ومن المؤكد أن متغير البيئة QT_API كان pyqt.

ثم عندما أغلقت Anaconda Navigator وفحصت مرة أخرى ، اختفى متغير QT_API تمامًا!

ولكن ، عندما أعدت تشغيل Anaconda navigator وفتحت دفتر Jupyter تحت نواة "oldqt" ، أحصل على نفس خطأ وقت التشغيل القديم الذي يشكو من pyqt5

عندما تقوم بتعيين ude فإنه يسري فقط في غلاف cmd الحالي. لا يوجد تأثير على البرامج خارج الغلاف أو في الأصداف الأخرى. يمكنك جوجل كيفية ضبط المتغير env بشكل دائم من النوافذ. لاختبار أقترح تعيين QT_API. في نفس الصدفة ، افتح python وقم بتشغيل مثال mlab بسيطًا ، على سبيل المثال من هنا http://docs.enthought.com/mayavi/mayavi/mlab.html#a -demo

يجب أيضًا أن تكون قادرًا على تعيين متغير env من python قبل استيراد mayavi. http://stackoverflow.com/questions/5971312/how-to-set-environment-variables-in-python

dreme : كان لدينا مستخدم لديه مشكلة مماثلة ، حلهم يساعد: https://github.com/menpo/menpo3d/issues/16

قد يكون من الأسهل اتباع الإرشادات الناتجة في برنامج README:
https://github.com/menpo/menpo3d#visualizing -3d-object

الجزء الأساسي:

إذا كنت تقوم بتشغيل Windows وتلقيت هذا الخطأ ، فحاول:

""
ضبط QT_API = pyqt
قم بتعيين ETS_TOOLKIT = qt4
""

jenshnielsen لقد حاولت أتمتة هذا حتى لا يضطر مستخدمو Menpo (على الأقل) للقلق بشأنه ، لكنني لم أتمكن من تشغيله: https://github.com/menpo/menpo3d/issues/22

سأقوم بإثارة قضية منفصلة لمحاولة مناقشة تحسين الوضع هنا.

يجب أيضًا أن تكون قادرًا على تعيين متغير env من python قبل استيراد mayavi. http://stackoverflow.com/questions/5971312/how-to-set-environment-variables-in-python

بنغو! هذا ما فعل الحيلة. Thxjenshnielsen = :-)

أفضّل هذا الأسلوب في البرنامج النصي مقارنةً بإجراء إعداد نظام تشغيل على مستوى النظام للمتغير البيئي QT_API ، حيث قد لا أزال أرغب في تطوير pyqt5 في بيئة Anaconda الجذرية.

لذلك ، باختصار لأي شخص فقير مثلي يكافح من أجل تشغيل Mayavi على anaconda python 3.5 ، إليك مقاربتي المقترحة مستخلصة من النصائح المفيدة في التعليقات السابقة:

  1. قم بإنشاء بيئة جديدة (oldqt) والتي تم إرجاعها إلى pyqt4 عن طريق تشغيل الأمر التالي في anaconda root env terminal:
    conda create -n oldqt python=3 pyqt=4

  2. قم بالتبديل إلى البيئة التي تم إنشاؤها حديثًا:
    activate oldqt لنظام التشغيل Windows
    source activate oldqt لنظام التشغيل Mac / Linux

  3. قم بتثبيت mayavi باستخدام مثبت حزمة menpo:
    conda install -c menpo mayavi

  4. استخدم oldqt env لتشغيل نصوص python mayavi ، وقم بتضمين المقتطف أدناه في الجزء العلوي من هذه البرامج النصية لضمان تحديد QT API صالح لـ mayavi:

import os
os.environ["QT_API"] = "pyqt"

VTK-7.0.0-cp34-cp34m-win_amd64.whl غير متوفر على http://www.lfd.uci.edu/~gohlke/pythonlibs/#vtk ، حيث يمكنني الحصول على VTK-7.0.0-cp34- cp34m-win_amd64.whl.

كان متاحًا منذ أسبوع ، قمت بتنزيله. لا يزال موجودًا على جهاز الكمبيوتر في مكتبي ويمكنني أن أرسل لك رابطًا عليه
الاثنين (أيضًا لإصدار Mayavi المطابق).

لماذا لا تستخدم أحدث إصدار من Mayavi و VTK؟

الرجاء إرسال ارتباط لـ VTK-7.0.0-cp34-cp34m-win_amd64.whl. شكرا لك.

يجب أن يكون الرابط أدناه صالحًا لمدة 30 يومًا تقريبًا.

VTK-7.0.0-cp34-cp34m-win_amd64.whl

http://ge.tt/8QvtGkl2

إذن ... أين هذا تقريبًا؟ لقد كنت أراقب هذا منذ البداية وهو مشروع آخر من تلك المشاريع التي لا يبدو أنها تحدث.

nevion كيف تقصد؟ هذه مشكلة مغلقة ، ولدي مايافي أعمل على Python 3.6 على Windows وكذلك Linux.

mabl لم يكن من الواضح حقًا من مسار المشكلة أن هذا هو الحال ، وغالبًا ما تُترك الأشياء في حالة غير واضحة في البرامج العلمية بشيء مثل تأخر دعم qt. بين هذا وبين توزيع الأناكوندا الذي يدعم 2.7 فقط ، اعتقدت أن هذا لا يزال هو الحال. أي فكرة لماذا لا تزال الأناكوندا تدعم 2.7 فقط؟

conda install mayavi
Fetching package metadata .........
Solving package specifications: .

UnsatisfiableError: The following specifications were found to be in conflict:
  - mayavi -> apptools 4.2.0 -> python 2.7* -> openssl 1.0.1*
  - python 3.6*
Use "conda info <package>" to see the dependencies for each package.

فقط قم بتثبيت Anaconda3 وحاول تثبيت mayavi. يملك:

(C: \ ProgramData \ Anaconda3) C: \ Users \ nort.ARP> conda install mayavi
إحضار البيانات الوصفية للحزمة ...
حل مواصفات الحزمة:.

خطأ غير مرضي: تم العثور على تعارض بين المواصفات التالية:

  • مايافي -> apptools 4.2.0 -> python 2.7 *
  • بيثون 3.6 *
    استخدام "معلومات conda"لمعرفة التبعيات لكل حزمة.

هل نظرت / جربت الإرشادات المكونة من 4 نقاط أعلاه من

على وجه التحديد منdreme

  1. قم بإنشاء بيئة جديدة (oldqt) والتي تم إرجاعها إلى pyqt4 عن طريق تشغيل الأمر التالي في anaconda root env terminal:

        conda create -n oldqt python=3.5 pyqt=4
    
  2. قم بالتبديل إلى البيئة التي تم إنشاؤها حديثًا:

        activate oldqt #for Windows OS
        source activate #oldqt for Mac/linux OS
    
  3. قم بتثبيت mayavi باستخدام مثبت حزمة menpo:

        conda install -c menpo mayavi
    
  4. استخدم env oldqt لتشغيل البرامج النصية لـ python mayavi ، وقم بتضمين المقتطف أدناه في الجزء العلوي من هذه البرامج النصية للتأكد من تحديد QT API صالح لـ mayavi:

        import os
        os.environ["QT_API"] = "pyqt"
    

jonathanrocher لا ، عادل بما فيه الكفاية. ربما كنت أخطأ في قراءة التأكيد على أن هذا قد تم حله ونجح للتو. نعم ، تم تثبيته باتباع الوصفة.

لقد جربت للتو تعليماتdreme المكونة من 4 نقاط
conda create -n oldqt python=3.5 pyqt=4 وقد نجح ذلك.

نعم هذا صحيح ، يتطلب Mayavi 4.5 Python 3.5 بسبب QT4

لذا يمكنني الحصول على mayavi للعمل على Qt5 و Python 3.6 + VTK7.1 باستخدام مثل conda install python=3.6.1 vtk>=7 -c clinicalgraphics ، وباستخدام بعض أرقام الالتزام الأخيرة من pyface ، traits ، و traitsui . يبدو أن هذا يعمل على OSX و Windows و Linux وفقًا لمؤشرات CI الخاصة بنا.

ومع ذلك ، في أجهزة OSX التي تدعم HiDPI ، يتم استخدام 1/4 فقط من مساحة الشاشة:

screen shot 2017-10-17 at 17 07 08

هل هذا شيء يمكن إصلاحه على مستوى Mayavi؟

يبدو أنه ربما كان من المفترض أن يكون جزءًا من VTK7.1:

https://public.kitware.com/pipermail/vtk-developers/2016-November/034456.html

لكن قبل أن أتعمق في النظر ، كنت أفكر في أن أسأل عما إذا كان لدى الآخرين أفكار.

أحد الخيارات (محزن ولكنه يملأ النافذة) هو انتظار ظهور VTK8 ، ثم استخدام QVTKOpenGLWidget ، والذي يمكنك استخدامه لإيقاف تشغيل HiDPI:

https://www.vtk.org/doc/nightly/html/classQVTKOpenGLWidget.html#details

أو ربما سيعمل HiDPI "فقط" عند استخدام هذه الأداة.

لقد جربت متغيرات البيئة المدرجة هنا لكنها لم تصلحها.

مرحبًا larsoner ، هل هناك بعض الأخبار الآن عن توفر vtk 8.1؟

تثبيت vtk 8.1.0 conda install -c conda-forge vtk ، تم تخفيض إصدار python إلى 3.6.2 (و matplotlib إلى 2.1.0 بين البرامج الأخرى).
لقد قمت بتثبيت pyface 5.1.0 ، السمات 4.6.0 ، traitsui 5.1.0 ، conda install -c conda-forge pyface traits traitsui
لدي كيو تي 5.6.2.

تثبيت Mayavi 4.5.0 من conda-forge conda install -c conda-forge mayavi يشكو من التبعيات pyqt 4.* ، python 3.6* و vtk 7.1.* .

أي اقتراح لجعله يعمل مع الحزم الحالية أو ، بدلاً من ذلك ، بالضبط كيف جعلته يعمل مع Python3.6 و Qt5 و VTK7.1؟ (لا يزال هناك حل بواسطة dreme لـ Python3.5 + Qt4) شكرًا لك.

لقد استخدمنا ملف البيئة هذا لـ CI لمدة 6 أشهر تقريبًا على Linux و OSX و Windows بنجاح جيد (بخلاف عناصر HiDPI):

https://github.com/mne-tools/mne-python/blob/master/environment.yml

يحتوي على مجموعة من الأشياء التي لا تحتاجها. كانت المكونات الأساسية لـ Mayavi تحصل على VTK7 من clinicalgraphics لأن لديها إصدار 3.6 ، وتثبيتها في بعض الالتزامات pyface ، traits ، و traitsui من GitHub بدلاً من استخدام الإصدارات حيث لم يتم إصدار الإصدارات الداعمة لـ Qt5 بعد.

إذا كان VTK8 متاحًا في conda-forge ، فمن المحتمل أن يتم تبديله بأمان ، لكنني لم أجربه بعد. سأعطيها لقطة في مرحلة ما وأرى ما إذا كانت تعمل على إصلاح عناصر HiDPI. إذا هزمتني ، دعني أعرف كيف ستسير الأمور!

larsoner ، mpanighel - هذه مشكلة في VTK 7.x (النافذة هي ربع الحجم فقط) وتعمل بشكل جيد مع VTK 8.x. ترقبوا الطريقة الأسهل لتثبيت VTK في غضون أيام قليلة.

فقط لمعلوماتك ، لقد دفعت العجلات لـ VTK 8.1.0 على PyPI ، انظر هنا: http://prabhuramachandran.blogspot.in/2018/01/vtk-810-wheels-for-all-platforms-on-pypi.html

رهيبة prabhuramachandran !

هذا رائع prabhuramachandran ! شكرا!

في هذه الأيام ، اتبعت أحدث إصلاحاتك وحاولت إعادة إنتاج إعدادك واختبار mayavi على python3.6 / pyqt5 على نظام Linux ، ولكن بدون حظ (بالتأكيد لمعرفتي الأساسية للغاية عن لغة python) ، على الأرجح أنني أفتقد بعض الحزم الواضحة. فكرت في نشر مزيد من المعلومات في https://github.com/enthought/mayavi/issues/595 لتكون أكثر ترتيبًا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

scottstanie picture scottstanie  ·  4تعليقات

aestrivex picture aestrivex  ·  9تعليقات

kitchoi picture kitchoi  ·  10تعليقات

stefanoborini picture stefanoborini  ·  11تعليقات

PennyQ picture PennyQ  ·  4تعليقات