-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Closed
Labels
Official binariesItems related to the official SciPy binaries, including wheels and vendored libsItems related to the official SciPy binaries, including wheels and vendored libs
Description
My bug report is about DLL load error on running scipy-1.3.2 library for Windows 10 64bit
Reproducing code example:
import scipy.sparse.linalg
print("loaded")
After small research I've identified a culput, there is no PATH env setup for windows platform inside __config__.py of scipy package, or it's not get executed correctly.
if sys.platform == 'win32' and os.path.isdir(extra_dll_dir):
os.environ.setdefault('PATH', '')
os.environ['PATH'] += os.pathsep + extra_dll_dir
Henceforth, the path to .libs folder is not added to Windows path and libraries never ever gets found.
Error message:
Traceback (most recent call last):
File "test_lib.py", line 1, in <module>
import scipy.sparse.linalg
File "C:\apps\Python37\lib\site-packages\scipy\sparse\linalg\__init__.py", line 113, in <module>
from .isolve import *
File "C:\apps\Python37\lib\site-packages\scipy\sparse\linalg\isolve\__init__.py", line 6, in <module>
from .iterative import *
File "C:\apps\Python37\lib\site-packages\scipy\sparse\linalg\isolve\iterative.py", line 10, in <module>
from . import _iterative
ImportError: DLL load failed
Scipy/Numpy/Python version information:
Python 3.7.5 win64
scipy-1.3.2
numpy-1.17.4
Temporary workaround I'm using for the moment being, is a small update within __init__.py repeating the missing search path addition.
import os
import sys
extra_dll_dir = os.path.join(os.path.dirname(__file__), '.libs')
if sys.platform == 'win32' and os.path.isdir(extra_dll_dir):
os.environ['PATH'] = extra_dll_dir + os.pathsep + os.environ['PATH']
clemextravisci and rmharrisonclemextravisci
Metadata
Metadata
Assignees
Labels
Official binariesItems related to the official SciPy binaries, including wheels and vendored libsItems related to the official SciPy binaries, including wheels and vendored libs