Pydiderot / pydiderotIDE

Environnement de dévelopement python adapté à l'enseignement et l'apprentissage de l'algorithmique.
MIT License
1 stars 2 forks source link

scipy DLL hell. ImportError: DLL load failed #18

Closed cspaier closed 5 years ago

cspaier commented 5 years ago

En testant le fichier TestLibrairies sous windows 7, j'ai l'érreur suivante:

  File "C:\Users\cspaier\python\test.py", line 1, in <module>
    import TestLibrairies.py
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\site-packages\thonny\backend.py", line 317, in _custom_import
    module = self._original_import(*args, **kw)
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\site-packages\TestLibrairies.py", line 9, in <module>
    from lycee import *
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\site-packages\thonny\backend.py", line 317, in _custom_import
    module = self._original_import(*args, **kw)
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\site-packages\lycee.py", line 27, in <module>
    from stats_proba import *
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\site-packages\thonny\backend.py", line 317, in _custom_import
    module = self._original_import(*args, **kw)
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\site-packages\stats_proba.py", line 13, in <module>
    from scipy.stats import norm
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\site-packages\thonny\backend.py", line 317, in _custom_import
    module = self._original_import(*args, **kw)
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\scipy\stats\__init__.py", line 367, in <module>
    from .stats import *
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\site-packages\thonny\backend.py", line 317, in _custom_import
    module = self._original_import(*args, **kw)
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\scipy\stats\stats.py", line 172, in <module>
    import scipy.special as special
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\site-packages\thonny\backend.py", line 317, in _custom_import
    module = self._original_import(*args, **kw)
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\scipy\special\__init__.py", line 641, in <module>
    from ._ufuncs import *
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\site-packages\thonny\backend.py", line 317, in _custom_import
    module = self._original_import(*args, **kw)
  File "_ufuncs.pyx", line 1, in init scipy.special._ufuncs
  File "C:\Users\cspaier\Downloads\pydiderot-dev\Thonny\lib\site-packages\thonny\backend.py", line 317, in _custom_import
    module = self._original_import(*args, **kw)
ImportError: DLL load failed: Le module spécifié est introuvable.

En gros, notre fichier stats_proba lance from scipy.stats import norm qui à sont tour lance import scipy.special as special. Ce dernier provoque ImportError: DLL load failed: Le module spécifié est introuvable.

Des utilisateurs de conda on le même problème mais nous n' utilisons pas conda à ma connaissance. J'ai testé plusieurs manière d'installer scipy en vain.

Je propose de mettre en quarantaine la librairie stats_proba jusqu'a ce qu'on résolve cela. En gros, on indique que ca fonctionne pas dans la doc en liant vers cette issue et on retire les tests de TestLibrairies.py

Je ne crois pas que l'on ai tésté stats_proba sous windows en fait donc il est très probable que ce problème ait été présent depuis le début.

cspaier commented 5 years ago

C'est un problème apparemment commun nommé "DLL hell".

Résolu en installant les paquets à partir de ce dépot.

cspaier commented 5 years ago

Mauvaise nouvelle:

Ca fonctionne en B318 mais pas en salle des profs de math. Il faut que je teste sous pleins de windows différents à la maison j'imagine. On peut pas raisonnablement se passer de scipy?

cspaier commented 5 years ago

Le bug n'est plus présent depuis qu'on a supprimé numpy.