pip install pyopencl fails with ImportError: No module named 'numpy'
pip install pyopencl fails with ImportError: No module named 'numpy'
用pip安装pyopencl时,提示缺少numpy:
Collecting pyopencl
Downloading https://files.pythonhosted.org/packages/bc/58/3ab1246e94986f1b6953e76d7ea7e69d2dbfef7b3f3874eded48524a024f/pyopencl-2018.2.2.tar.gz (341kB)
100% |████████████████████████████████| 348kB 9.5MB/s
Complete output from command python setup.py egg_info:
---------------------------------------------------------------------------
Pybind11 is not installed.
---------------------------------------------------------------------------
Very likely, the build process after this message will fail.
Simply press Ctrl+C and type
python -m pip install pybind11
to fix this. If you don't, the build will continue
in a few seconds.
[1] https://pybind11.readthedocs.io/en/stable/
---------------------------------------------------------------------------
Continuing in 1 seconds...
---------------------------------------------------------------------------
Mako is not installed.
---------------------------------------------------------------------------
That is not a problem, as most of PyOpenCL will be just fine
without it. Some higher-level parts of pyopencl (such as
pyopencl.reduction) will not function without the templating engine
Mako [1] being installed. If you would like this functionality to
work, you might want to install Mako after you finish
installing PyOpenCL.
Simply type
python -m pip install mako
either now or after the installation completes to fix this.
[1] http://www.makotemplates.org/
---------------------------------------------------------------------------
Hit Ctrl-C now if you'd like to think about the situation.
---------------------------------------------------------------------------
Continuing in 1 seconds...
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-nccshu4t/pyopencl/setup.py", line 353, in <module>
main()
File "/tmp/pip-install-nccshu4t/pyopencl/setup.py", line 320, in main
language='c++',
File "/tmp/pip-install-nccshu4t/pyopencl/aksetup_helper.py", line 41, in __init__
self._include_dirs = self.include_dirs
File "/tmp/pip-install-nccshu4t/pyopencl/aksetup_helper.py", line 55, in get_include_dirs
return self._include_dirs + self.get_additional_include_dirs()
File "/tmp/pip-install-nccshu4t/pyopencl/aksetup_helper.py", line 52, in get_additional_include_dirs
return [self.get_numpy_incpath()]
File "/tmp/pip-install-nccshu4t/pyopencl/aksetup_helper.py", line 47, in get_numpy_incpath
file, pathname, descr = find_module("numpy")
File "/home/app/nb-ocl/.venv/lib/python3.5/imp.py", line 296, in find_module
raise ImportError(_ERR_MSG.format(name), name=name)
ImportError: No module named 'numpy'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-nccshu4t/pyopencl/
这是 PyPI 中发布的最新版本的 pyopencl 的问题。 github 存储库中的最新版本已经解决了这个问题,在 setup.py::setup().
中使用新的 ExtensionUsingNumpy
而不是旧的 NumpyExtension
不过,如果没有安装Mako和pybind11依赖,pyopencl的安装会失败。为什么这些设置不处理。py/setuptools?
由于 PyPI 中没有可用的二进制文件(wheels),pip install 默认拉取软件分发 (sdist) 存档并尝试构建它。 pyopencl 的构建过程依赖于 numpy、pybind11 和 mako,因此 pip 失败。
OTOH 如果 pyopencl 提供了二进制文件(wheels)这个问题是可以避免的。有一个等待审查的拉取请求应该有助于解决这个问题:https://github.com/inducer/pyopencl/pull/264
用pip安装pyopencl时,提示缺少numpy:
Collecting pyopencl
Downloading https://files.pythonhosted.org/packages/bc/58/3ab1246e94986f1b6953e76d7ea7e69d2dbfef7b3f3874eded48524a024f/pyopencl-2018.2.2.tar.gz (341kB)
100% |████████████████████████████████| 348kB 9.5MB/s
Complete output from command python setup.py egg_info:
---------------------------------------------------------------------------
Pybind11 is not installed.
---------------------------------------------------------------------------
Very likely, the build process after this message will fail.
Simply press Ctrl+C and type
python -m pip install pybind11
to fix this. If you don't, the build will continue
in a few seconds.
[1] https://pybind11.readthedocs.io/en/stable/
---------------------------------------------------------------------------
Continuing in 1 seconds...
---------------------------------------------------------------------------
Mako is not installed.
---------------------------------------------------------------------------
That is not a problem, as most of PyOpenCL will be just fine
without it. Some higher-level parts of pyopencl (such as
pyopencl.reduction) will not function without the templating engine
Mako [1] being installed. If you would like this functionality to
work, you might want to install Mako after you finish
installing PyOpenCL.
Simply type
python -m pip install mako
either now or after the installation completes to fix this.
[1] http://www.makotemplates.org/
---------------------------------------------------------------------------
Hit Ctrl-C now if you'd like to think about the situation.
---------------------------------------------------------------------------
Continuing in 1 seconds...
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-nccshu4t/pyopencl/setup.py", line 353, in <module>
main()
File "/tmp/pip-install-nccshu4t/pyopencl/setup.py", line 320, in main
language='c++',
File "/tmp/pip-install-nccshu4t/pyopencl/aksetup_helper.py", line 41, in __init__
self._include_dirs = self.include_dirs
File "/tmp/pip-install-nccshu4t/pyopencl/aksetup_helper.py", line 55, in get_include_dirs
return self._include_dirs + self.get_additional_include_dirs()
File "/tmp/pip-install-nccshu4t/pyopencl/aksetup_helper.py", line 52, in get_additional_include_dirs
return [self.get_numpy_incpath()]
File "/tmp/pip-install-nccshu4t/pyopencl/aksetup_helper.py", line 47, in get_numpy_incpath
file, pathname, descr = find_module("numpy")
File "/home/app/nb-ocl/.venv/lib/python3.5/imp.py", line 296, in find_module
raise ImportError(_ERR_MSG.format(name), name=name)
ImportError: No module named 'numpy'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-nccshu4t/pyopencl/
这是 PyPI 中发布的最新版本的 pyopencl 的问题。 github 存储库中的最新版本已经解决了这个问题,在 setup.py::setup().
中使用新的ExtensionUsingNumpy
而不是旧的 NumpyExtension
不过,如果没有安装Mako和pybind11依赖,pyopencl的安装会失败。为什么这些设置不处理。py/setuptools?
由于 PyPI 中没有可用的二进制文件(wheels),pip install 默认拉取软件分发 (sdist) 存档并尝试构建它。 pyopencl 的构建过程依赖于 numpy、pybind11 和 mako,因此 pip 失败。
OTOH 如果 pyopencl 提供了二进制文件(wheels)这个问题是可以避免的。有一个等待审查的拉取请求应该有助于解决这个问题:https://github.com/inducer/pyopencl/pull/264