Ошибка при установке numpy для pypy2.2.1
Я пытаюсь использовать Pypy. Мои скрипты на Python используют NumPy. Поэтому, когда я использовал pypy 1.9.0, он показал мне это:
"The 'numpy' module of PyPy is in-development and not complete. "
ImportError: The '`numpy' module` of PyPy is in-development and not complete. To try it out anyway, you can either import from 'numpypy', or just write 'import numpypy' first in your program and then import from 'numpy' as usual.
Поэтому я использовал import numpypy, а затем запустил свой скрипт. Я получил эту ошибку:
File "customecode.py", line 97, in dist_new
dlat = radians(p2[..., 0] - p1[..., 0])
TypeError: expected integer, got Ellipsis object
Я не мог найти что-либо об этой ошибке. Хотя скрипт работает нормально, когда я использую Python. Так что я думаю, что Pypy все еще не поддерживает все, что есть на NumPy.
Я нашел эту ссылку в обновлении pypy-numpy. Поэтому я устанавливаю pypy 2.2.1 http://morepypy.blogspot.in/2013/11/numpy-status-update.html В этой ссылке приведены следующие инструкции по установке numpy для pypy:
git clone https://bitbucket.org/pypy/numpy.git
cd numpy
pypy setup.py install
после запуска pypy setup.py install
Я получил эту ошибку типа:
Traceback (most recent call last):
File "app_main.py", line 51, in run_toplevel
File "setup.py", line 239, in <module>
setup_package()
File "setup.py", line 231, in setup_package
setup(**metadata)
File "/home/administrator/numpy/numpy/distutils/core.py", line 169, in setup
return old_setup(**new_attr)
File "/usr/lib/pypy/lib-python/2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/lib/pypy/lib-python/2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib/pypy/lib-python/2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/home/administrator/numpy/numpy/distutils/command/install.py", line 57, in run
r = old_install.run(self)
File "/usr/lib/pypy/lib-python/2.7/distutils/command/install.py", line 613, in run
self.run_command('build')
File "/usr/lib/pypy/lib-python/2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/usr/lib/pypy/lib-python/2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/home/administrator/numpy/numpy/distutils/command/build.py", line 39, in run
old_build.run(self)
File "/usr/lib/pypy/lib-python/2.7/distutils/command/build.py", line 127, in run
self.run_command(cmd_name)
File "/usr/lib/pypy/lib-python/2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/usr/lib/pypy/lib-python/2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/home/administrator/numpy/numpy/distutils/command/build_src.py", line 153, in run
self.build_sources()
File "/home/administrator/numpy/numpy/distutils/command/build_src.py", line 164, in build_sources
self.build_library_sources(*libname_info)
File "/home/administrator/numpy/numpy/distutils/command/build_src.py", line 299, in build_library_sources
sources = self.generate_sources(sources, (lib_name, build_info))
File "/home/administrator/numpy/numpy/distutils/command/build_src.py", line 386, in generate_sources
source = func(extension, build_dir)
File "numpy/core/setup.py", line 678, in get_mathlib_info
st = config_cmd.try_link('int main(void) { return 0;}')
File "/usr/lib/pypy/lib-python/2.7/distutils/command/config.py", line 248, in try_link
self._check_compiler()
File "/home/administrator/numpy/numpy/distutils/command/config.py", line 46, in _check_compiler
old_config._check_compiler(self)
File "/usr/lib/pypy/lib-python/2.7/distutils/command/config.py", line 103, in _check_compiler
customize_compiler(self.compiler)
File "/usr/lib/pypy/lib-python/2.7/distutils/ccompiler.py", line 44, in customize_compiler
cpp = cc + " -E" # not always
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
Я хочу использовать pypy 2.2.1 с любой разработкой numpy, представленной там. Любая помощь с установкой numpy для pypy приветствуется.
1 ответ
В PyPy 2.2.1 файл lib-python/2.7/distutils/ccompiler.py не содержит какой-либо функции под названием customize_compiler(), и строка 44 не такая. Я предполагаю, что ваша версия стандартной библиотеки PyPy была подстроена вашим дистрибутивом Linux таким образом, что это приводит к сбою в вашем конкретном случае.
Я могу только предложить, чтобы вы попытались получить "официальный" PyPy 2.2.1 и сравнить результаты.