Numpy: فشل استيراد الوحدة النمطية للملحق متعدد الصفائح

تم إنشاؤها على ٢٠ يونيو ٢٠١٧  ·  39تعليقات  ·  مصدر: numpy/numpy

أحاول تثبيت numpy 1.13.0. جهازي هو Windows 7 ، وتثبيت Python الخاص بي هو 64 بت Python 3.6.0. كان لدي سابقًا إصدار أقدم من numpy مثبتًا (من موقع Christoph Gohlke) لكنني قمت بإلغاء تثبيته. كان لدي أيضًا زوجان من منشآت Anaconda ، لكنني قمت أيضًا بإلغاء تثبيتها. ومع ذلك ، عندما أحاول استيراد numpy ، يظهر لي الخطأ أعلاه:

PS 11:46 {00:04.053} D:\experiments                                                                                                                 
>pip install --no-cache numpy                                                                                                                       
Collecting numpy                                                                                                                                    
  Downloading numpy-1.13.0-cp36-none-win_amd64.whl (7.8MB)                                                                                          
    100% |████████████████████████████████| 7.8MB 541kB/s                                                                                           
Installing collected packages: numpy                                                                                                                
Successfully installed numpy-1.13.0                                                                                                                 
PS 11:46 {00:18.096} D:\experiments                                                                                                                 
>python                                                                                                                                             
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32                                                      
Type "help", "copyright", "credits" or "license" for more information.                                                                              
>>> import numpy                                                                                                                                    
Traceback (most recent call last):                                                                                                                  
  File "C:\Users\UK03306\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\__init__.py", line 16, in <module>                     
    from . import multiarray                                                                                                                        
ImportError: DLL load failed: The specified procedure could not be found.                                                                           

During handling of the above exception, another exception occurred:                                                                                 

Traceback (most recent call last):                                                                                                                  
  File "<stdin>", line 1, in <module>                                                                                                               
  File "C:\Users\UK03306\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\__init__.py", line 142, in <module>                         
    from . import add_newdocs                                                                                                                       
  File "C:\Users\UK03306\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>                       
    from numpy.lib import add_newdoc                                                                                                                
  File "C:\Users\UK03306\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>                       
    from .type_check import *                                                                                                                       
  File "C:\Users\UK03306\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>                    
    import numpy.core.numeric as _nx                                                                                                                
  File "C:\Users\UK03306\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\__init__.py", line 26, in <module>                     
    raise ImportError(msg)                                                                                                                          
ImportError:                                                                                                                                        
Importing the multiarray numpy extension module failed.  Most                                                                                       
likely you are trying to import a failed build of numpy.                                                                                            
If you're working with a numpy git repo, try `git clean -xdf` (removes all                                                                          
files not under version control).  Otherwise reinstall numpy.                                                                                       

لقد قمت بفحص كل نسخة أخرى من Python على جهاز الكمبيوتر الخاص بي ولم يتم تثبيت أي منها. لا أرغب حقًا في إلغاء تثبيت تثبيت Python بالكامل وإعادة تثبيته ، حيث يوجد الكثير من الحزم المثبتة التي يجب علي إعادة تثبيتها. من غير المحتمل أن تؤثر أي من الحزم الأخرى ، على حد علمي ، على numpy (أو إذا كانت كذلك ، فهي في أحدث إصدار على أي حال).

ما هي الخيارات التي يجب أن أتمكن من معرفة الخطأ هنا قبل أن أضطر إلى مسح كل تثبيت Python على جهازي وإجراء إعادة تثبيت كاملة؟

00 - Bug

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

Windows 10 ، Python 3.6 ، مثبت باستخدام نقطة وعندما أقوم باستيراده ، فإنه يعطيني هذا الخطأ.

""
C: \ Users \ Kevin> python
Python 3.6.0 (v3.6.0: 41df79263a11 ، 23 ديسمبر 2016 ، 07:18:10) [MSC v.1900 32 بت
(Intel)] على win32
اكتب "مساعدة" أو "حقوق طبع ونشر" أو "ائتمانات" أو "ترخيص" لمزيد من المعلومات.

استيراد numpy
Traceback (أحدث مكالمة أخيرة):
ملف "D: \ Python3.6 \ libsite -pack \ numpy \ core__init __. py" ، السطر 16 ، في

من عند . استيراد متعدد
خطأ استيراد: فشل تحميل DLL: تعذر العثور على الإجراء المحدد.

أثناء معالجة الاستثناء أعلاه ، حدث استثناء آخر:

Traceback (أحدث مكالمة أخيرة):
ملف ""، السطر 1 ، في
ملف "D: \ Python3.6 \ libsite -pack \ numpy__init __. py" ، السطر 142 ، في

من عند . استيراد add_newdocs
ملف "D: \ Python3.6 \ libsite -pack \ numpy \ add_newdocs.py" ، السطر 13 ، في

من numpy.lib استيراد add_newdoc
ملف "D: \ Python3.6 \ libsite -pack \ numpy \ lib__init __. py" ، السطر 8 ، في

من .type_check import *
الملف "D: \ Python3.6 \ libsite -pack \ numpy \ lib \ type_check.py" ، السطر 11 ، في

استيراد numpy.core.numeric كـ _nx
ملف "D: \ Python3.6 \ libsite -pack \ numpy \ core__init __. py" ، السطر 26 ، في

رفع خطأ الاستيراد (رسالة)
خطأ في الاستيراد:
فشل استيراد الوحدة النمطية للملحق متعدد الصفائح. معظم
من المحتمل أنك تحاول استيراد بنية فاشلة من numpy.
إذا كنت تعمل مع git repo ، فجرّب git clean -xdf (يزيل جميع ملفات
الملفات التي لا تخضع لتحكم الإصدار). خلاف ذلك إعادة تثبيت numpy.

كان الخطأ الأصلي: فشل تحميل DLL: تعذر الإجراء المحدد
وجدت.

ال 39 كومينتر

لا ، لا يجب أن تتأثر بالحزم الأخرى. أفترض أنك تحققت من عدم وجود شيء غريب في PATH أو PYTHONPATH ؟ وعندما تقول "ألغيت تثبيتها" ، هل انتقلت إلى site-packages وفعلت (ما يعادل Windows) rm -rf numpy ؟ قد يكون بعض البقايا من حزمة cgohlke .

@ ماثيو بريت بينغ

فعلت pip install numpy . لا يوجد شيء في حزم الموقع مع كلمة "numpy" في الاسم بعد القيام بذلك. تساءلت عن احتمالية أن يكون ذلك بسبب استخدامي للبنيات

لا يوجد شيء واضح يمكنني رؤيته على PATH وليس لدي PYTHONPATH .

بعد المزيد من اللعب مع ctypes يبدو أن هناك خطأ ما في multiarray :

>>> ctypes.cdll.LoadLibrary(r'C:\users\uk03306\appdata\local\programs\python\python36\lib\site-packages\numpy\core\multiarray.cp36-win_amd64.pyd')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\UK03306\AppData\Local\Programs\Python\Python36\lib\ctypes\__init__.py", line 422, in LoadLibrary
    return self._dlltype(name)
  File "C:\Users\UK03306\AppData\Local\Programs\Python\Python36\lib\ctypes\__init__.py", line 344, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found
>>> ctypes.cdll.LoadLibrary(r'C:\users\uk03306\appdata\local\programs\python\python36\lib\site-packages\numpy\core\umath.cp36-win_amd64.pyd')
<CDLL 'C:\users\uk03306\appdata\local\programs\python\python36\lib\site-packages\numpy\core\umath.cp36-win_amd64.pyd', handle 7fecc110000 at 0x2789eb8>
>>>

عند القيام ببعض البحث باستخدام أداة التحكم في التبعية ، يبدو أن بعض الملفات قد يفشل تحميلها (أشياء مثل API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL ).

يُظهر البحث في الشبكة أن هذه مرتبطة بمكتبات Windows 8 فقط. أفترض أنها قد تم ربطها عن طريق الخطأ ، وأن numpy لا تلغي دعم Windows 7؟

راجع https://github.com/dotnet/coreclr/issues/65 و https://answers.microsoft.com/en-us/windows/forum/windows_10-files/missing-api-ms-win-core-dlls / d99d1368-0f92-43db-bbdb-7d080f1f96e9 لبضعة روابط وجدتها أثناء البحث عن هذه المشكلة.

كإصلاح قصير المدى ، عدت إلى رقم 1.12.1

لقد راجعت للتو مع زميل. لديه بنية 32 بت ويبدو أنه يعمل بشكل جيد. لذلك قد يكون شيئًا خاصًا بالثنائي 64 بت.

ربما هذا هو إصدار Python 29943 . الإضافات التي تم إنشاؤها باستخدام Python 3.6.1 لن تعمل على 3.6.0.

cgohlke - اقتراح جيد. من هذا الخطأ ، يجب أن نعيد بناء العجلة الفارغة باستخدام Python 3.6.0. الإعدادات الافتراضية Appveyor هي 3.6.1: https://www.appveyor.com/docs/build-environment/#python

يجب أن يؤثر هذا الخطأ فقط على الحزم التي تشير إلى PySlices_GetIndicesEx ، على الرغم من ذلك ، ويمكن تشخيصه عن طريق التحقق مما إذا كان الثنائي الناتج يشير إلى PySlice_AdjustIndices . اعتقدت أن numpy لم يتأثر.

لقد اختبرت للتو على جهاز الكمبيوتر المنزلي ، الذي يحتوي على Python 3.6.1 ، و numpy 1.13 يعمل بشكل جيد هناك. ومع ذلك ، فإن جهاز الكمبيوتر المنزلي الخاص بي هو أيضًا Windows 10 ، ولديه الكثير من الاختلافات الأخرى ، لذلك فهو ليس اختبارًا مثاليًا. سأقوم بترقية جهاز الكمبيوتر الخاص بعملي إلى 3.6.1 غدًا ، والاختبار هناك.

على جهاز الاختبار الخاص بي ، قمت بتثبيت numpy في virtualenv لـ Python.org 3.6.0 ، وحصلت على التعطل ، ثم قمت بتثبيت Python 3.6.1 ولم أحصل على التعطل.

يمكنني أن أؤكد أن الترقية إلى 3.6.1 تعمل على إصلاح مشكلتي على الجهاز الذي واجهت المشكلة به في الأصل. أنا شخصياً موافق على إغلاق هذه المشكلة بـ "الترقية إلى 3.6.1" كحل ، لكنني سأترك الأمر لك لإغلاقه في حال كنت تفضل إصلاح البرنامج الثنائي لدعم 3.6.0 .

@ ماثيو بريت سأقوم بعمل 1.13.1 قريبًا. هل ستجري أي تعديلات على البناء؟

charris - أعتقد أننا يجب أن نبني على 3.6.0. لا أعتقد أن هناك أي طريقة للقيام بذلك باستخدام Appveyor ومخزون Pythons ، لذلك سنحتاج إلى استخدام Conda.

كنت أقوم بتجربة بناء openblas هذه المرة ، ولكن قد يستغرق ذلك بعض الوقت حتى تنتهي - قل أسبوعًا؟

هل يمكن لشخص ما تأكيد ما إذا كانت عجلات Windows السيئة تحتوي على إشارة إلى الرمز PySlice_AdjustIndices ؟ إذا فعلوا ذلك ، فلن تقتصر المشكلة على Windows ، لذلك سنحتاج إلى الانتباه لذلك ، ولكن على الأقل هذا معروف وسيتم إصلاحه في الإصدار 3.6.2 الذي سيصدر قريبًا. إذا لم يكن الأمر كذلك ، فسيحدث شيء آخر ، ربما حدث كسر abi 3.6.1 غير معروف سابقًا والذي يجب علينا الإبلاغ عنه بشكل عاجل.

س سzooba

هل يمكن لشخص ما تأكيد ما إذا كانت عجلات Windows السيئة تحتوي على إشارة إلى الرمز PySlice_AdjustIndices ؟

نعم ، يشير multiarray.cp36-win_amd64.pyd PySlice_AdjustIndices و PySlice_Unpack .

هاه ، أقسم أنني قمت بمراجعة numpy لمعرفة ما إذا كان قد تأثر بـ bpo-29943 ، واستنتجت أنه لم يكن كذلك. ومع ذلك ، في الواقع ، يبدو أن زميلًا يُدعى "njsmith" أضاف هذه المكالمات العام الماضي: https://github.com/numpy/numpy/pull/7215
آسف للارتباك ، لست متأكدًا مما كنت أفكر فيه.

Windows 10 ، Python 3.6 ، مثبت باستخدام نقطة وعندما أقوم باستيراده ، فإنه يعطيني هذا الخطأ.

""
C: \ Users \ Kevin> python
Python 3.6.0 (v3.6.0: 41df79263a11 ، 23 ديسمبر 2016 ، 07:18:10) [MSC v.1900 32 بت
(Intel)] على win32
اكتب "مساعدة" أو "حقوق طبع ونشر" أو "ائتمانات" أو "ترخيص" لمزيد من المعلومات.

استيراد numpy
Traceback (أحدث مكالمة أخيرة):
ملف "D: \ Python3.6 \ libsite -pack \ numpy \ core__init __. py" ، السطر 16 ، في

من عند . استيراد متعدد
خطأ استيراد: فشل تحميل DLL: تعذر العثور على الإجراء المحدد.

أثناء معالجة الاستثناء أعلاه ، حدث استثناء آخر:

Traceback (أحدث مكالمة أخيرة):
ملف ""، السطر 1 ، في
ملف "D: \ Python3.6 \ libsite -pack \ numpy__init __. py" ، السطر 142 ، في

من عند . استيراد add_newdocs
ملف "D: \ Python3.6 \ libsite -pack \ numpy \ add_newdocs.py" ، السطر 13 ، في

من numpy.lib استيراد add_newdoc
ملف "D: \ Python3.6 \ libsite -pack \ numpy \ lib__init __. py" ، السطر 8 ، في

من .type_check import *
الملف "D: \ Python3.6 \ libsite -pack \ numpy \ lib \ type_check.py" ، السطر 11 ، في

استيراد numpy.core.numeric كـ _nx
ملف "D: \ Python3.6 \ libsite -pack \ numpy \ core__init __. py" ، السطر 26 ، في

رفع خطأ الاستيراد (رسالة)
خطأ في الاستيراد:
فشل استيراد الوحدة النمطية للملحق متعدد الصفائح. معظم
من المحتمل أنك تحاول استيراد بنية فاشلة من numpy.
إذا كنت تعمل مع git repo ، فجرّب git clean -xdf (يزيل جميع ملفات
الملفات التي لا تخضع لتحكم الإصدار). خلاف ذلك إعادة تثبيت numpy.

كان الخطأ الأصلي: فشل تحميل DLL: تعذر الإجراء المحدد
وجدت.

@ ماثيو بريت أي أخبار على هذا الصعيد؟ أرغب في الحصول على 1.13.1 من هذا الأسبوع إن أمكن.

من المقرر صدورnjsmith Python 3.6.2 يوم الجمعة. هل يحل المشكلة وهل لا يزال في الموعد المحدد؟

تحرير: إذا قمنا بالبناء باستخدام Python 3.6.0 أو 3.6.2 ، فهل ستظل العجلات تعمل مع 3.6.1؟

يبدو أننا تفادينا تلك الرصاصة بـ 1.12.1 ، ولكن فقط ببضعة أيام ...

نعم ، يجب أن يكون البناء باستخدام 3.6.0 أو 3.6.2 آمنًا ، بمعنى أن الثنائيات الناتجة ستعمل على جميع أنظمة 3.6.x.

إذا كان علينا ذلك ، فمن الممكن أيضًا استخدام اختراق المعالج المسبق للتغلب على المشكلة في 3.6.1. أعتقد أن التعويذة المناسبة هي: https://github.com/pandas-dev/pandas/blob/24719672685027710cf432023a7fbc3222b0b05c/pandas/_libs/src/compat_helper.h#L29 -L33

مجرد العمل على تجميع mingw OpenBLAS ، مع carlkl . تم إحراز بعض التقدم ، لكن لا يمكننا الوعد بإنجازه في الأيام القليلة المقبلة. استخدام اختراق المعالج المسبق الآن؟

@ Matthew-brett إذا صدر الإصدار 3.6.2 يوم الجمعة وكان متاحًا على appveyor بعد فترة وجيزة ، فسأذهب بهذه الطريقة في أقرب وقت. بدافع الفضول ، ما الذي تستخدمه numpy on window حاليًا؟

نحن نستخدم نظام أطلس في الوقت الحالي ، لكن الأداء سيئ للغاية. سيكون من الجيد أن تكون قادرًا على استخدام OpenBLAS ، من أجل الأداء والاتساق مع إصدارات Linux.

لست متأكدًا من المدة التي سيستغرقها Appveyor قبل ترقية Python 3.6 إلى 3.6.2.

نفس المشكلة ، عملت numpy v1.13.1 و python 3.6.1 لمدة شهرين ، والآن فشلت. استند هذا إلى تثبيت conda باستخدام windows anaconda navigator. تعمل جميع التعليمات البرمجية في مايو ويونيو 2017 بشكل جيد ، ثم يوليو مع التحديث ولم يعد برنامج python 3.6.2 "import numpy" يعمل.

بعض التحقيقات الإضافية (تستند فقط إلى numpy و python 3.6.2 تؤدي إلى
C: \ Anaconda3 \ envs \ tensorflow-cpu \ Libsite -pack \ numpy \ coremultiarray.cp36-win_amd64.pyd
(تم تجميع ملف Python DLL) من 7/7/2017 والذي يتم تحميله
C: \ Windows \ System32 \ mkl_intel_thread.dll (v2009)
C: \ Windows \ System32 \ mkl_core.dll (v2009)
C: \ Windows \ System32 \ libiomp5md.dll (v2009)

المشكلة الآن هي أن هناك إصدارات متعددة لكل من مكتبات DLL (DLL hell)
جميع التواريخ والإصدارات وأحجام الملفات المختلفة. بشكل أساسي ، لا يتم تثبيت Anaconda Navigator أو Spyder أو python المثبت من خلال بيئات مختلفة على إصدارات DLL الصحيحة.


mkl_intel_thread.dll
C: \ Anaconda3 \ Library \ bin \ mkl_intel_thread.dll (أكتوبر 2016)
C: \ Anaconda3 \ pkgs \ mkl-2017.0.3-0 \ Library \ bin \ mkl_intel_thread.dll (أبريل 2017)
C: \ Windows \ System32 \ mkl_intel_thread.dll (v2009)


mkl_core.dll
C: \ Anaconda3 \ pkgs \ mkl-2017.0.3-0 \ Library \ bin \ mkl_core.dll (أبريل 2017)
C: \ Anaconda3 \ Library \ bin \ mkl_core.dll (أكتوبر 2016)
C: \ Windows \ System32 \ mkl_core.dll (v2009)


libiomp5md.dll
C: \ Anaconda3 \ pkgs \ mkl-2017.0.3-0 \ Library \ bin \ libiomp5md.dll
C: \ Anaconda3 \ Library \ bin \ libiomp5md.dll
C: \ Anaconda3 \ envs \ tensorflow-cpu \ Library \ bin \ libiomp5md.dll
C: \ Program Files (x86) \ Common Files \ Intel \ Shared Libraries \ redist \ ia32 \ compiler \ libiomp5md.dll
C: \ Program Files (x86) \ Common Files \ Intel \ Shared Libraries \ redist \ intel64 \ compiler \ libiomp5md.dll
C: \ Windows \ System32 \ libiomp5md.dll

كل منها إصدارات مختلفة وأحجام الملفات والإصدارات. تشير المكتبات التي تم تحميلها بشكل أساسي
إلى الإصدارات القديمة جدًا التي تتراوح من 2009 إلى 2017. هذه مشكلة في تحميل الإصدارات القديمة من المجلد C: \ Windows \ System32 \.

tobigithub : إذا كنت تواجه مشكلة في تحميل مكتبات MKL ، فعليك أن تأخذ ذلك إلى مطوري أناكوندا - لا يوزع المشروع الخفي أي ثنائيات تستخدم MKL ، ولدى Conda طرقها الخاصة في محاولة تجنب جحيم DLL. لا أستطيع مساعدتك حقًا.

tobigithub ، يبدو أن هذه نسخة من https://github.com/numpy/numpy/issues/6923. يمكنك تجربة ما إذا كان https://github.com/numpy/numpy/issues/6923#issuecomment -168490201 أو https://github.com/numpy/numpy/issues/6923#issuecomment -169073613 مناسبًا لك.

حل آخر هو العثور على البرنامج الذي قام بنسخ MKL DLLs القديمة في مجلدات أنظمة windows وإلغاء تثبيته. يجب أن تفكر أيضًا في إلغاء تثبيت ملفات MKL القابلة لإعادة التوزيع.

njsmith و carlkl
شكرا لك. هناك المئات من التطبيقات التي تستخدم مكتبات intel هذه (بما في ذلك Microsoft و Intel نفسها). مع تثبيت آلاف التطبيقات ، من المؤكد أن شيئًا ما سيتعطل ، ولكن تحديث نظام DLLS القديم (2009) إذا كانت تسبق إصدار مشكلة جديدة من المحتمل أن يؤدي إلى كارثة. قد يكون ذلك أمرًا بالغ الأهمية للنظام مثل برنامج تشغيل INTEL RAID أو فشل USB أو محول الرسومات. مجرد الإبلاغ عن هذه المشكلة هنا ، إنها مجرد حدس ، 1.13.1 عملت بشكل جيد من قبل والآن في يوليو 2017 تم كسرها بطريقة سحرية ، قد يكون هذا متعلقًا بتثبيتات البرامج أو تحديثات Windows أو أي حزم أو أحداث أخرى ، رسالة الخطأ نفسها ربما أيضا لا يساعد.

مشكلات مماثلة مع numpy و DLL:
https://www.google.com/search؟q=numpy+ "استيراد + + multiarray + numpy + extension + module + فشل." & oq = numpy + "فشل الاستيراد + the + multiarray + numpy + extension + module +."

tobigithub : أنا آسف لأنك تواجه مشكلات ، ولكن مرة أخرى ، إذا كانت المشكلة ناتجة عن تفاعل numpy و MKL ، فلا يوجد شيء يمكن أن يفعله المشروع الخفي حيال ذلك ؛ نحن نقدم كود المصدر الذي يمكن لأي شخص استخدامه لبناء numpy مرتبط مقابل أي مكتبة جبر خطية يعجبهم ، ونوفر ثنائيات مرتبطة بـ openblas ، لكننا لا نربط numpy بـ MKL بأنفسنا أو لدينا أي تحكم في كيفية إعداد مطوري conda لذلك .

يكتشف بحث Google هذا فقط كل حالة يعاني فيها أي شخص من أي نوع من المشاكل مع الثنائيات غير المستقرة - على سبيل المثال ، تم تقديم تقرير الخطأ هذا الذي تعلق عليه للإبلاغ عن عدم التوافق بين الثنائيات غير المترابطة التي تحصل عليها مع pip install numpy و python 3.6.0 ، ولا علاقة له بـ MKL. بقدر ما أعلم أنك الشخص الوحيد الذي أبلغ عن مشاكل ناجمة عن الإصدارات القديمة من MKL في C:\Windows\System32 . ومن المنطقي أن يتسبب هذا في حدوث مشكلات ، لأن قواعد تحميل Windows DLL تم إعدادها على افتراض أن C:\Windows\System32 يحتوي فقط على مكتبات DLL لنظام التشغيل المهمة التي لا ينبغي أبدًا استبدالها من قبل المستخدمين ويجب أن تتجاوز كل شيء آخر .. وضع MKL هناك أمر سيء حقًا.

إذا كان برنامج تشغيل RAID أو USB الخاص بك أو أي شيء معطل بطريقة تؤدي إلى كسر البرامج الأخرى على نظامك ، فأعتقد أنه يجب عليك الإبلاغ عن خطأ معهم؟ أنا متعاطف مع إحباطك ، ولكن لا يوجد شيء يمكننا فعله هنا لمساعدتك ، بخلاف تقديم اقتراحات لتحديد البرنامج المخطئ بالفعل. إنه ليس مكسورًا.

تضمين التغريدة
شكرًا لك ، لقد أكدت للتو استخدام VM على نظام Windows 10 نظيف لم يسبق له مثيل من قبل Intel MKL DLLs أو numpy أو conda ، كل الأشياء تعمل بشكل جيد ومكتوب. أنا في حيرة من أمري كيف توقفت فجأة عن العمل ، يمكن أن تكون أطرافًا ثالثة. ربما يحتاج إلى مزيد من الحفر ، دعنا نرى ما يمكننا اكتشافه لجعله صعبًا لأي مشكلة تبعية.

... طيب هنا الحل

يرتبط الحل بالفعل ببعض مشكلات تبعات DLL ضمن WIN مع مكتبات Intel MKL
كان خطأ الاستيراد غير المفرد تحت python 3.6.2 و numpy 1.13.1:

"استيراد numpy"
numpy \ core_init_.py "، السطر 16 ، في
من عند . استيراد متعدد
خطأ استيراد: فشل تحميل DLL: تعذر العثور على الإجراء المحدد.

الحل السريع والقذر هو نسخ جميع مكتبات Intel mkl * .dll من مجلد فرعي للبيئات المحددة (env) (يظهر في stackoverflow )

<\ Library \ bin> إلى
<\ Libsite-bundles \ numpy \ core>

04/13/2017  12:50 AM        30,277,392 mkl_avx.dll
04/13/2017  12:50 AM        38,253,840 mkl_avx2.dll
04/13/2017  12:50 AM        42,234,640 mkl_avx512.dll
04/13/2017  12:50 AM        45,722,896 mkl_avx512_mic.dll
04/13/2017  12:50 AM        25,369,360 mkl_core.dll
04/13/2017  12:50 AM        24,541,456 mkl_def.dll
04/13/2017  12:50 AM        24,506,640 mkl_intel_thread.dll
04/13/2017  12:50 AM        29,744,400 mkl_mc.dll
04/13/2017  12:50 AM        30,594,320 mkl_mc3.dll
04/13/2017  12:50 AM        12,567,824 mkl_rt.dll
04/13/2017  12:50 AM        11,388,688 mkl_sequential.dll
04/13/2017  12:50 AM        12,575,504 mkl_tbb_thread.dll
04/13/2017  12:50 AM        11,250,960 mkl_vml_avx.dll
04/13/2017  12:50 AM        11,463,952 mkl_vml_avx2.dll
04/13/2017  12:50 AM        10,285,840 mkl_vml_avx512.dll
04/13/2017  12:50 AM        11,692,304 mkl_vml_avx512_mic.dll
04/13/2017  12:50 AM         5,224,208 mkl_vml_cmpt.dll
04/13/2017  12:50 AM         5,345,552 mkl_vml_def.dll
04/13/2017  12:50 AM         9,477,904 mkl_vml_mc.dll
04/13/2017  12:50 AM         9,368,336 mkl_vml_mc2.dll
04/13/2017  12:50 AM         9,593,616 mkl_vml_mc3.dll

الآن يمكن استيراد numpy ويعمل بشكل جيد.

انها مشكلة numpy / conda / python تحت النوافذ. يتم تنفيذ كلا المثالين في نفس الوقت باستخدام نفس إصدار Anaconda Navigator (conda). يمكن أن يساعد تثبيت إصدارات مختلفة من python ثم اختبار جميع التبعيات المختلفة وأرقام الإصدارات في العثور على المشكلة. بعد ذلك يجب التحقيق في تغييرات الكود.

العمل
Python 3.5.3 و Numpy 1.10.1 و MKL 2017.0.3

Python 3.5.3 |Continuum Analytics, Inc.| (default, May 15 2017, 10:43:23) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print (sys.version)
3.5.3 |Continuum Analytics, Inc.| (default, May 15 2017, 10:43:23) [MSC v.1900 64 bit (AMD64)]
>>>
>>> import numpy
>>> numpy.version.version
'1.10.1'
>>>
>>> import numpy as np
>>> a = np.array([1, 2, 3, 4, 5])
>>> print(a)
[1 2 3 4 5]
>>>

مكسور
Python 3.5.3 و Numpy 1.13.1 و MKL 2017.0.3

Python 3.5.3 |Continuum Analytics, Inc.| (default, May 15 2017, 10:43:23) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print (sys.version)
3.5.3 |Continuum Analytics, Inc.| (default, May 15 2017, 10:43:23) [MSC v.1900 64 bit (AMD64)]
>>>
>>> import numpy
Traceback (most recent call last):
  File "C:\Anaconda3\envs\python35-numpy-test\lib\site-packages\numpy\core\__init__.py", line 16, in <module>
    from . import multiarray
ImportError: DLL load failed: The specified procedure could not be found.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Anaconda3\envs\python35-numpy-test\lib\site-packages\numpy\__init__.py", line 142, in <module>
    from . import add_newdocs
  File "C:\Anaconda3\envs\python35-numpy-test\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "C:\Anaconda3\envs\python35-numpy-test\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
    from .type_check import *
  File "C:\Anaconda3\envs\python35-numpy-test\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "C:\Anaconda3\envs\python35-numpy-test\lib\site-packages\numpy\core\__init__.py", line 26, in <module>
    raise ImportError(msg)
ImportError:
Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control).  Otherwise reinstall numpy.

Original error was: DLL load failed: The specified procedure could not be found.

tobigithub : هذا هو المكان الخطأ لمناقشة ذلك ، كما سبق
أوضح لك عدة مرات. إذا كان لديك مشاكل مع الأناكوندا ، فأنت
بحاجة إلى الإبلاغ عنهم إلى سلسلة / أناكوندا.

توجد مشكلة Appveyor لـ Python 3.6.2 على https://github.com/appveyor/ci/issues/1770

يتطلع صانعو عجلات Python 3.6 إلى التحديث إلى Python 3.6.2 ، لذا أغلقوا هذا.

التوافق. إصدار Python Interpreter ونسخة numpy.
تثبّت pip3 عددًا صغيرًا من الإصدار 3.5 ، لذلك يجب عليك استخدام الأناكوندا لإعداد بيئة بيثون للإصدار المقابل

كانت تواجه نفس المشكلة مع Python 3.6.2 و Numpy / Scipy على Windows 8. لم يتم تثبيت Anaconda أيضًا.

Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)] on win32

C:\Python36\Scripts>pip freeze

numpy==1.14.2
pandas==0.21.0
scipy==1.0.1

كان Python 2.7 موجودًا في متغير PATH. إزالته.

ثم ألغى تثبيت الوحدات النمطية الموجودة scipy و numpy. تأكد من تنفيذ الأوامر كمسؤول.

pip uninstall numpy
pip uninstall scipy

ثم ركض

pip install numpy --upgrade
pip install scipy --upgrade

هذا حل المشكلة!

شكر،
برافين

مرحبا،
ما زلت أتلقى هذا الخطأ.
إصدار Python: 3.6.4
الإصدار numpy: 1.14.3
تتبع المكدس كما يلي:
Traceback (أحدث مكالمة أخيرة):
ملف "D: \ Personal \ Software \ InstallationDir \ Python \ libsite -pack \ numpy \ core_init_.py" ، السطر 16 ، في
من عند . استيراد متعدد
خطأ استيراد: فشل تحميل DLL: لم يتم العثور على مسار الشبكة.

أثناء معالجة الاستثناء أعلاه ، حدث استثناء آخر:

Traceback (أحدث مكالمة أخيرة):
ملف "pca_svm.py" ، السطر 1 ، بتنسيق
استيراد numpy كـ np
ملف "D: \ Personal \ Software \ InstallationDir \ Python \ libsite -pack \ numpy_init_.py" ، السطر 142 ، في
من عند . استيراد add_newdocs
ملف "D: \ Personal \ Software \ InstallationDir \ Python \ libsite -pack \ numpy \ add_newdocs.py" ، السطر 13 ، في
من numpy.lib استيراد add_newdoc
ملف "D: \ Personal \ Software \ InstallationDir \ Python \ libsite -pack \ numpy \ lib_init_.py" ، السطر 8 ، في
من .type_check import *
ملف "D: \ Personal \ Software \ InstallationDir \ Python \ libsite -pack \ numpy \ lib \ type_check.py" ، السطر 11 ، في
استيراد numpy.core.numeric كـ nx
ملف "D: \ Personal \ Software \ InstallationDir \ Python \ libsite-pack \ numpy \ core_init.py" ، السطر 26 ، في
رفع خطأ الاستيراد (رسالة)
خطأ في الاستيراد:
فشل استيراد الوحدة النمطية للملحق متعدد الصفائح. معظم
من المحتمل أنك تحاول استيراد بنية فاشلة من numpy.
إذا كنت تعمل باستخدام git repo ، فجرب git clean -xdf (يزيل جميع ملفات
الملفات التي لا تخضع لتحكم الإصدار). خلاف ذلك إعادة تثبيت numpy.

كان الخطأ الأصلي: فشل تحميل DLL: لم يتم العثور على مسار الشبكة.

نقدر أي مساعدة.
شكر،

KumarNavneet هذه مشكلة مختلفة عما

تم بالتأكيد حل هذه المشكلة المتعلقة بالثنائيات 3.6.1 التي لا تعمل مع 3.6.0 ، ويستمر الأشخاص في نشر مشكلات التثبيت الأخرى هنا لأن خطأ الاستيراد يبدو مشابهًا. ومن ثم أقفل هذه المشكلة.

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