Модуль не найден при использовании scipy

Недавно я правильно установил numpy и scipy. Следующая строка выполняется без ошибок.

import scipy

У меня проблемы с использованием scipy.io.wavefile. Я пытался использовать код из «лучшего ответа» этого сообщения.

Однако, когда я пробую первую строчку,

from scipy.io import wavfile

Я получаю следующую ошибку и отслеживаю,

Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> from scipy.io import wavfile File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\io\__init__.py", line 97, in <module> from .matlab import loadmat, savemat, whosmat, byteordercodes File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\io\matlab\__init__.py", line 13, in <module> from .mio import loadmat, savemat, whosmat File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\io\matlab\mio.py", line 12, in <module> from .miobase import get_matfile_version, docfiller File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\io\matlab\miobase.py", line 22, in <module> from scipy.misc import doccer File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\misc\__init__.py", line 68, in <module> from scipy.interpolate._pade import pade as _pade File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\interpolate\__init__.py", line 175, in <module> from .interpolate import * File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\interpolate\interpolate.py", line 21, in <module> import scipy.special as spec File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\special\__init__.py", line 640, in <module> from ._ufuncs import * File "_ufuncs.pyx", line 1, in init scipy.special._ufuncs ImportError: DLL load failed: The specified module could not be found.

Я также получаю сообщение об ошибке и трассировку, если вместо этого попробую следующую строку:

import scipy.io.wavfile

получение другого ответа,

Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> import scipy.io.wavfile File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\io\__init__.py", line 97, in <module> from .matlab import loadmat, savemat, whosmat, byteordercodes File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\io\matlab\__init__.py", line 13, in <module> from .mio import loadmat, savemat, whosmat File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\io\matlab\mio.py", line 12, in <module> from .miobase import get_matfile_version, docfiller File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\io\matlab\miobase.py", line 22, in <module> from scipy.misc import doccer File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\misc\__init__.py", line 68, in <module> from scipy.interpolate._pade import pade as _pade File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\interpolate\__init__.py", line 175, in <module> from .interpolate import * File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\interpolate\interpolate.py", line 21, in <module> import scipy.special as spec File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\special\__init__.py", line 642, in <module> from .basic import * File "C:\Users\Me\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\special\basic.py", line 15, in <module> from ._ufuncs import (ellipkm1, mathieu_a, mathieu_b, iv, jv, gamma, ImportError: cannot import name 'ellipkm1' from 'scipy.special._ufuncs' (unknown location)

Я не понимаю, почему модуль не может быть найден, если scipy правильно установлен и может быть импортирован сам по себе. Я использую python 3.7.1. Мог ли код из поста обесцениться? Заранее извиняюсь за длинный пост.


person Frank Fanelli    schedule 09.12.2018    source источник
comment
Scipy сложно установить на окнах. Вы не можете просто pip install scipy в Windows - вы должны собрать его из источника, как указано здесь: scipy .github.io / devdocs / building / windows.html. Я предлагаю вам ознакомиться с дистрибутивом anaconda (anaconda.com/download), который, вероятно, является самым простым способом получить это на окнах   -  person Primusa    schedule 09.12.2018
comment
@Primusa Чепуха. pip install scipy работает хорошо. У вас могут возникнуть проблемы с отсутствующими библиотеками DLL, как указано ниже, но исправить это несложно. Однако сборка из исходных кодов может быть сложной задачей, если у вас не установлены Visual Studio и Intel Fortran.   -  person    schedule 09.12.2018
comment
@ Jean-ClaudeArbaut в том-то и дело, вы не можете просто pip install scipy .. вы должны получить и другие пакеты ...   -  person Primusa    schedule 09.12.2018
comment
@Primusa Другие пакеты: зависимости устанавливаются с помощью pip, и если есть проблема, есть один пакет для установки, распространяемые файлы VS.   -  person    schedule 09.12.2018
comment
Тайм-аут, я чего-то не понимаю. В чем разница между сборкой из исходного кода и установкой по протоколу? В документации scipy по установке scipy обычно говорится, что для Windows самый простой вариант - установить anaconda. Зачем им указывать пользователям в этом направлении, если pip install scipy будет работать точно так же?   -  person Primusa    schedule 09.12.2018
comment
Цитата из scipy.org/install.html. Для многих пользователей, особенно в Windows, самый простой Для начала загрузите один из этих дистрибутивов Python, в который входят все ключевые пакеты:   -  person Primusa    schedule 09.12.2018
comment
@Primusa До недавнего времени сборки scipy (и других) Windows даже не были доступны на PyPI. Но теперь это изменилось, и теперь я предпочитаю pip установить стек numpy. Что касается различия: обычно pip устанавливает двоичный пакет, если он есть, или строит из исходников. Но сборка из исходных кодов требует многих вещей (компиляторы C и Fortran, make ...), и часто возникают проблемы (но это также улучшается, по крайней мере, с VS / IVF), поэтому вы предпочли бы вместо этого использовать двоичные файлы.   -  person    schedule 09.12.2018
comment
Ого, я этого не знал! Спасибо, что разобрались :)   -  person Primusa    schedule 09.12.2018
comment
Еще один комментарий: теперь это уже не так необходимо, как раньше, но Кристоф Голке публикует Windows сборки многих библиотек Python. А в PyPI, наряду со стандартными сборками numpy и scipy, есть некоторые, предоставленные Intel с поддержкой MKL, см., Например, intel-numpy и intel-scipy. Они также распространяются с Intel Python (дистрибутив Anaconda с настройками Intel ).   -  person    schedule 09.12.2018
comment
@Primusa Сначала я пытался использовать Anaconda. Anaconda также требует, чтобы при использовании Scipy был установлен распространяемый компонент C ++. После установки распространяемого пакета C ++ все работает как положено.   -  person Frank Fanelli    schedule 14.12.2018


Ответы (1)


Оба сообщения об ошибках жалуются на модуль scipy.special._ufuncs, и быстрый поиск показал несколько других сообщений, как этот, предлагающий убедиться, что у вас установлены распространяемые пакеты Visual C ++: https://www.microsoft.com/en-us/download/details.aspx?id=48145

person seajoshc    schedule 09.12.2018