Ответ 1
Кажется, что сборка не связана с соответствующими библиотеками, и печать (запись на терминал) вызывает seg-faults.
вернемся к процессу сборки. вы можете использовать pip вместо setup.py build?
Можете ли вы работать под Linux:)
Я пытаюсь использовать Cython с Python3 (Anaconda3) под Windows 7. После того, как вы решили ошибку в distutils, отредактировав файл cygwinccompiler.py(cf. Построение минимального файла cython с помощью python 3.3 (Anaconda) под окнами 7), модули могут быть построены без каких-либо проблем:
C:\path\testcython> python setup.py build
running build
running build_ext
cythoning testcython.pyx to testcython.c
building 'testcython' extension
C:\Prog\Anaconda3\Scripts\gcc.bat -mdll -O -Wall -IC:\Prog\Anaconda3\include -IC
:\Prog\Anaconda3\include -c testcython.c -o build\temp.win-amd64-3.4\Release\tes
tcython.o
writing build\temp.win-amd64-3.4\Release\testcython.def
C:\Prog\Anaconda3\Scripts\gcc.bat -shared -s build\temp.win-amd64-3.4\Release\te
stcython.o build\temp.win-amd64-3.4\Release\testcython.def -LC:\Prog\Anaconda3\l
ibs -LC:\Prog\Anaconda3\PCbuild\amd64 -lpython34 -lmsvcr100 -o build\lib.win-amd
64-3.4\testcython.pyd
Однако, как только в файле .pyx есть операция импорта или печати, созданный файл .pyd вызывает сбой Python. Например, если testcython.pyx содержит
def say_hello_to(name):
print('Hello '+name)
он дает
In [1]: import testcython # no crash here
In [2]: testcython.say_hello_to('Tom')
Hello Tom
Здесь открывается окно "Python.exe перестало работать", и оно завершено.
В такой ситуации (авария без журнала ошибок, ошибка сегментации, я полагаю), что я могу сделать, чтобы понять проблему?
Кто-нибудь понимает, что происходит здесь с Cython, Python 3 (Anaconda3) под Windows?
PS: нет проблем с Python 2.7 (Anaconda).
Изменить: трассировка, созданная модулем faulthandler
Если testcython.pyx просто содержит:
print('Test print... Will it crash?')
или
import mod # where mod.py is a nearly empty module in the working directory
или
import sys
сбой python, и я получаю:
$ python -X faulthandler -c 'import testcython'
Test print... Will it crash?
Fatal Python error: Segmentation fault
Current thread 0x000013e0 (most recent call first):
File "<frozen importlib._bootstrap>", line 321 in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1715 in load_module
File "<frozen importlib._bootstrap>", line 539 in _check_name_wrapper
File "<frozen importlib._bootstrap>", line 1161 in _load_backward_compatible
File "<frozen importlib._bootstrap>", line 1191 in _load_unlocked
File "<frozen importlib._bootstrap>", line 2226 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 2237 in _find_and_load
File "<string>", line 1 in <module>
Кажется, что сборка не связана с соответствующими библиотеками, и печать (запись на терминал) вызывает seg-faults.
вернемся к процессу сборки. вы можете использовать pip вместо setup.py build?
Можете ли вы работать под Linux:)