Импорт numpy в моем файле setup.py завершается неудачно с сообщением об ошибке:
File "setup.py", line 17, in <module>
import numpy
File "C:\Users\Anaconda3\lib\site-packages\numpy\__init__.py", line 140, in <module>
from . import _distributor_init
File "C:\Users\Anaconda3\lib\site-packages\numpy\_distributor_init.py", line 34, in <module>
from . import _mklinit
ImportError: DLL load failed: The specified module could not be found.
Кажется, что он специфичен для numpy.Импорт, например, os
работает нормально.Или когда я пытаюсь импортировать pandas
ошибка говорит ImportError: Missing required dependencies ['numpy']
.
Здесь установочный файл
try:
from setuptools import setup
from setuptools import Extension
except ImportError:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import numpy
ext_modules = [Extension('helloworld',
['helloworld.pyx'])]
setup(cmdclass = {'build_ext': build_ext}, ext_modules = ext_modules)
и файл .pyx
print('Hello World')
(импорт numpy в сценарии .py
работает очень хорошо.) Яна Windows 10 с использованием новейшего дистрибутива Anaconda 3.7 с numpy версией 1.16.2 и cython версии 0.29.6.Для компиляции файлов c я использую компилятор, включенный в Visual Studio Community 2019.
Полагаю, это не так уж и много, но я безуспешно искал в Интернете целый день.Буду признателен за любую оказанную помощь.
РЕДАКТИРОВАТЬ дополнительная информация: Я установил более старую версию дистрибутива Anaconda (Anaconda3-5.3.1-Windows-x86_64.exe), но столкнулся с той же проблемой
C:\Users\Documents\cython>python setup.py build_ext --inplace
Traceback (most recent call last):
File "C:\Users\Anaconda3\lib\site-packages\numpy\core\__init__.py", line 16, in <module>
from . import multiarray
ImportError: DLL load failed: The specified module could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "setup.py", line 17, in <module>
import numpy
File "C:\Users\Anaconda3\lib\site-packages\numpy\__init__.py", line 142, in <module>
from . import add_newdocs
File "C:\Users\Anaconda3\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "C:\Users\Anaconda3\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
from .type_check import *
File "C:\Users\Anaconda3\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "C:\Users\Anaconda3\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.
EDIT2 Обходной путь: я импортирую numpy, потому что в конечном итоге я хочу использовать его функциональность в файле .pyx
.Для этого обычно нужно добавить include_dirs=[numpy.get_include()]
в Extension()
в файле setup.py
.Если я просто не импортирую numpy и вручную передам строку, которую я получу, вызвав numpy.get_include()
, то все будет работать.Но, конечно, это не так, как должно быть.