Unable to import: zsh: segmentation fault python3 · Issue #314 · go-python/gopy · GitHub
Skip to content

Unable to import: zsh: segmentation fault python3 #314

Closed

Description

@trueToastedCode

Was following the Examples from README

$ go mod init dummy.com/dum
$ go get github.com/go-python/gopy/_examples/hi
$ gopy build -output=out -vm=python3 github.com/go-python/gopy/_examples/hi
$ ls out
Makefile  __init__.py  __pycache__/  _hi.so*  build.py  go.py  hi.c  hi.go  hi.py  hi_go.h  hi_go.so

It compiles... however the import doesn't work

Python 3.10.8 (main, Nov 24 2022, 08:08:27) [Clang 14.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from out import hi
zsh: segmentation fault  python3

Fatal Python error: Segmentation fault
Current thread 0x00000001ec143a80 (most recent call first):
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1176 in create_module
  File "<frozen importlib._bootstrap>", line 571 in module_from_spec
  File "<frozen importlib._bootstrap>", line 674 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1006 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1027 in _find_and_load
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1078 in _handle_fromlist
  File "/Users/lennard/GoProjects/dum/out/hi.py", line 20 in <module>
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 883 in exec_module
  File "<frozen importlib._bootstrap>", line 688 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1006 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1027 in _find_and_load
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1078 in _handle_fromlist
  File "/Users/lennard/GoProjects/dum/test.py", line 1 in <module>
  • Python 3.10
  • Go 1.20
  • MacOS Ventura 13.1 (ARM64)
  • Goopy 0.4.4

Activity

  1. tals commented on Feb 14, 2023

    @tals

    It works for me when using the macOS bundled Python (/usr/local/bin/python3), but fails when attempting to use one provisioned by Conda.

    $ gopy build -output=out -vm=python3 github.com/go-python/gopy/_examples/hi
    
    --- Processing package: github.com/go-python/gopy/_examples/hi ---
    
    --- building package ---
    gopy build -output=out -vm=python3 github.com/go-python/gopy/_examples/hi
    goimports -w hi.go
    go build -mod=mod -buildmode=c-shared -o hi_go.so .
    /Users/tshiri/miniconda3/envs/py38/bin/python3 build.py
    CGO_CFLAGS=-I/Users/tshiri/miniconda3/envs/py38/include/python3.8 -fPIC -Ofast
    CGO_LDFLAGS=-L/Users/tshiri/miniconda3/envs/py38/lib -lpython3.8 -ldl -framework CoreFoundation
    go build -mod=mod -buildmode=c-shared -o _hi.cpython-38-darwin.so .
    
    $ which python
    /Users/tshiri/miniconda3/envs/py38/bin/python
    $ python
    >>> import out.hi
    Fatal Python error: _PyInterpreterState_Get(): no current thread state
    Python runtime state: unknown
    
    Process 58564 stopped
    * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
        frame #0: 0x00000001a0e2ed98 libsystem_kernel.dylib`__pthread_kill + 8
    libsystem_kernel.dylib`:
    ->  0x1a0e2ed98 <+8>:  b.lo   0x1a0e2edb8               ; <+40>
        0x1a0e2ed9c <+12>: pacibsp
        0x1a0e2eda0 <+16>: stp    x29, x30, [sp, #-0x10]!
        0x1a0e2eda4 <+20>: mov    x29, sp
    Target 1: (python) stopped.
    (lldb) bt
    * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
      * frame #0: 0x00000001a0e2ed98 libsystem_kernel.dylib`__pthread_kill + 8
        frame #1: 0x00000001a0e63ee0 libsystem_pthread.dylib`pthread_kill + 288
        frame #2: 0x00000001a0d9e340 libsystem_c.dylib`abort + 168
        frame #3: 0x0000000105127028 libpython3.8.dylib`fatal_error + 684
        frame #4: 0x00000001051271a4 libpython3.8.dylib`Py_FatalError + 24
        frame #5: 0x000000010504a670 libpython3.8.dylib`PyModule_Create2 + 56
        frame #6: 0x000000010013ee4c python`_PyImport_LoadDynamicModuleWithSpec + 1276
        frame #7: 0x000000010013dd24 python`_imp_create_dynamic + 456
        frame #8: 0x00000001000755f0 python`cfunction_vectorcall_FASTCALL + 284
        frame #9: 0x0000000100028008 python`PyVectorcall_Call + 120
        frame #10: 0x0000000100110ce4 python`_PyEval_EvalFrameDefault + 28320
        frame #11: 0x000000010010982c python`_PyEval_EvalCodeWithName + 3008
        frame #12: 0x0000000100028948 python`_PyFunction_Vectorcall + 208
    
  2. trueToastedCode commented on Feb 14, 2023

    @trueToastedCode
    Author

    It works for me when using the macOS bundled Python (/usr/local/bin/python3), but fails when attempting to use one provisioned by Conda.

    $ gopy build -output=out -vm=python3 github.com/go-python/gopy/_examples/hi
    
    --- Processing package: github.com/go-python/gopy/_examples/hi ---
    
    --- building package ---
    gopy build -output=out -vm=python3 github.com/go-python/gopy/_examples/hi
    goimports -w hi.go
    go build -mod=mod -buildmode=c-shared -o hi_go.so .
    /Users/tshiri/miniconda3/envs/py38/bin/python3 build.py
    CGO_CFLAGS=-I/Users/tshiri/miniconda3/envs/py38/include/python3.8 -fPIC -Ofast
    CGO_LDFLAGS=-L/Users/tshiri/miniconda3/envs/py38/lib -lpython3.8 -ldl -framework CoreFoundation
    go build -mod=mod -buildmode=c-shared -o _hi.cpython-38-darwin.so .
    
    $ which python
    /Users/tshiri/miniconda3/envs/py38/bin/python
    $ python
    >>> import out.hi
    Fatal Python error: _PyInterpreterState_Get(): no current thread state
    Python runtime state: unknown
    
    Process 58564 stopped
    * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
       frame #0: 0x00000001a0e2ed98 libsystem_kernel.dylib`__pthread_kill + 8
    libsystem_kernel.dylib`:
    ->  0x1a0e2ed98 <+8>:  b.lo   0x1a0e2edb8               ; <+40>
       0x1a0e2ed9c <+12>: pacibsp
       0x1a0e2eda0 <+16>: stp    x29, x30, [sp, #-0x10]!
       0x1a0e2eda4 <+20>: mov    x29, sp
    Target 1: (python) stopped.
    (lldb) bt
    * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
     * frame #0: 0x00000001a0e2ed98 libsystem_kernel.dylib`__pthread_kill + 8
       frame #1: 0x00000001a0e63ee0 libsystem_pthread.dylib`pthread_kill + 288
       frame #2: 0x00000001a0d9e340 libsystem_c.dylib`abort + 168
       frame #3: 0x0000000105127028 libpython3.8.dylib`fatal_error + 684
       frame #4: 0x00000001051271a4 libpython3.8.dylib`Py_FatalError + 24
       frame #5: 0x000000010504a670 libpython3.8.dylib`PyModule_Create2 + 56
       frame #6: 0x000000010013ee4c python`_PyImport_LoadDynamicModuleWithSpec + 1276
       frame #7: 0x000000010013dd24 python`_imp_create_dynamic + 456
       frame #8: 0x00000001000755f0 python`cfunction_vectorcall_FASTCALL + 284
       frame #9: 0x0000000100028008 python`PyVectorcall_Call + 120
       frame #10: 0x0000000100110ce4 python`_PyEval_EvalFrameDefault + 28320
       frame #11: 0x000000010010982c python`_PyEval_EvalCodeWithName + 3008
       frame #12: 0x0000000100028948 python`_PyFunction_Vectorcall + 208
    

    Ok thx... succeeded to import using the Python from Homebrew

    $ which python3
    /opt/homebrew/bin/python3
    

    But now there is the next problem:

    >>> import out.hi
    >>> dir(hi)
    ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_collections_abc', '_hi', 'collections', 'currentdir', 'cwd', 'go', 'inspect', 'os', 'sys']
    

    the package doesn't include any of the defined methods from hi.go... e.g. Hi

    out.hi.Hi()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: module 'out.hi' has no attribute 'Hi'
    

    also tried to make my own go module... same result... methods defined in go, won't be available in python :(

    MOVED THIS TO: #315

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions