"команда 'g cc' завершилась неудачно с состоянием выхода 1" при запуске %% cython в блокноте jupyter - PullRequest
1 голос
/ 09 марта 2020

Я установил Cython с conda

Установка Cython

После перезапуска ядра я также загрузил его без ошибок, используя %reload_ext Cython.

Однако, когда я пытаюсь запустить следующий код

%%cython

import numpy as np

cdef int a = 0
cdef int g[10]
cdef int i

for i in range(10):
    g[i] = a
    a += i
print(g)

, я получаю ошибку command 'gcc' failed with exit status 1.

Я довольно новичок в Cython и понятия не имею, как решить этот вопрос или даже какие вопросы искать.

Полный журнал ошибок:

---------------------------------------------------------------------------
DistutilsExecError                        Traceback (most recent call last)
~/opt/anaconda3/lib/python3.7/distutils/unixccompiler.py in _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts)
    117             self.spawn(compiler_so + cc_args + [src, '-o', obj] +
--> 118                        extra_postargs)
    119         except DistutilsExecError as msg:

~/opt/anaconda3/lib/python3.7/distutils/ccompiler.py in spawn(self, cmd)
    908     def spawn(self, cmd):
--> 909         spawn(cmd, dry_run=self.dry_run)
    910 

~/opt/anaconda3/lib/python3.7/distutils/spawn.py in spawn(cmd, search_path, verbose, dry_run)
     35     if os.name == 'posix':
---> 36         _spawn_posix(cmd, search_path, dry_run=dry_run)
     37     elif os.name == 'nt':

~/opt/anaconda3/lib/python3.7/distutils/spawn.py in _spawn_posix(cmd, search_path, verbose, dry_run)
    158                           "command %r failed with exit status %d"
--> 159                           % (cmd, exit_status))
    160             elif os.WIFSTOPPED(status):

DistutilsExecError: command 'gcc' failed with exit status 1

During handling of the above exception, another exception occurred:

CompileError                              Traceback (most recent call last)
<ipython-input-25-16f694f6508b> in <module>
----> 1 get_ipython().run_cell_magic('cython', '', '\nimport numpy as np\n\ncdef int a = 0\ncdef int g[10]\ncdef int i\n\nfor i in range(10):\n    g[i] = a\n    a += i\nprint(g)\n')

~/opt/anaconda3/lib/python3.7/site-packages/IPython/core/interactiveshell.py in run_cell_magic(self, magic_name, line, cell)
   2357             if getattr(fn, "needs_local_scope", False):
   2358                 kwargs['local_ns'] = self.user_ns
-> 2359 
   2360             with self.builtin_trap:
   2361                 args = (magic_arg_s, cell)

</Users/w849277/opt/anaconda3/lib/python3.7/site-packages/decorator.py:decorator-gen-128> in cython(self, line, cell)

~/opt/anaconda3/lib/python3.7/site-packages/IPython/core/magic.py in <lambda>(f, *a, **k)
    185     # but it's overkill for just that one bit of state.
    186     def magic_deco(arg):
--> 187         call = lambda f, *a, **k: f(*a, **k)
    188 
    189         if callable(arg):

~/opt/anaconda3/lib/python3.7/site-packages/Cython/Build/IpythonMagic.py in cython(self, line, cell)
    331         extension = None
    332         if need_cythonize:
--> 333             extensions = self._cythonize(module_name, code, lib_dir, args, quiet=args.quiet)
    334             if extensions is None:
    335                 # Compilation failed and printed error message

~/opt/anaconda3/lib/python3.7/site-packages/Cython/Build/IpythonMagic.py in _build_extension(self, extension, lib_dir, temp_dir, pgo_step_name, quiet)
    441                 force=True,
    442             )
--> 443             if args.language_level is not None:
    444                 assert args.language_level in (2, 3)
    445                 opts['language_level'] = args.language_level

~/opt/anaconda3/lib/python3.7/distutils/command/build_ext.py in run(self)
    338 
    339         # Now actually compile and link everything.
--> 340         self.build_extensions()
    341 
    342     def check_extensions_list(self, extensions):

~/opt/anaconda3/lib/python3.7/distutils/command/build_ext.py in build_extensions(self)
    447             self._build_extensions_parallel()
    448         else:
--> 449             self._build_extensions_serial()
    450 
    451     def _build_extensions_parallel(self):

~/opt/anaconda3/lib/python3.7/distutils/command/build_ext.py in _build_extensions_serial(self)
    472         for ext in self.extensions:
    473             with self._filter_build_errors(ext):
--> 474                 self.build_extension(ext)
    475 
    476     @contextlib.contextmanager

~/opt/anaconda3/lib/python3.7/distutils/command/build_ext.py in build_extension(self, ext)
    532                                          debug=self.debug,
    533                                          extra_postargs=extra_args,
--> 534                                          depends=ext.depends)
    535 
    536         # XXX outdated variable, kept here in case third-part code

~/opt/anaconda3/lib/python3.7/distutils/ccompiler.py in compile(self, sources, output_dir, macros, include_dirs, debug, extra_preargs, extra_postargs, depends)
    572             except KeyError:
    573                 continue
--> 574             self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
    575 
    576         # Return *all* object filenames, not just the ones we just built.

~/opt/anaconda3/lib/python3.7/distutils/unixccompiler.py in _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts)
    118                        extra_postargs)
    119         except DistutilsExecError as msg:
--> 120             raise CompileError(msg)
    121 
    122     def create_static_lib(self, objects, output_libname,

CompileError: command 'gcc' failed with exit status 1

Кроме того, моя мама c обновлена ​​до 10.15.3 Каталина, а мама моего друга c, которая осталась 10.14.6 Мохаве, управляла тот же код без проблем. Я слышал о проблемах совместимости с Anaconda, когда впервые появилась Catalina, но я не знаю, связано ли это с моей ошибкой.

1 Ответ

0 голосов
/ 09 марта 2020

Просто отвечаю на свой вопрос, чтобы я мог закрыть его.

Спасибо за два комментария на мой вопрос! Мне удалось найти значимый ответ в моем терминале в соответствии с ответом, приведенным здесь: Что означает CompileError / LinkerError: «команда« gcc »завершилась неудачно с состоянием выхода 1» при запуске %% cython-magi c ячейка в I Python

Оказывается, ошибка была

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

, которую просто нужно было устранить, запустив этот код в терминале:

xcode-select --install

Более подробное решение отсутствующей проблемы xcrun можно найти здесь https://apple.stackexchange.com/questions/254380/why-am-i-getting-an-invalid-active-developer-path-when-attempting-to-use-git-a

...