• Kirill Smelkov's avatar
    golang: Fix import on Windows · f59a785d
    Kirill Smelkov authored
    We already fixed DSO path setup for Windows in a5ce8175 (golang: Prepare
    path for libgolang.dll before importing _golang), but after 68f384a9 (*:
    Replace imp with importlib on py3) it got broken again because
    golang._gopath started to import golang.sync and import of
    golang._gopath was before dylink_prepare_dso call:
    
        (1.wenv-386) Z:\home\kirr\src\tools\go\pygo-win\pygolang>python
        Python 3.11.5 (tags/v3.11.5:cce6ba9, Aug 24 2023, 14:21:31) [MSC v.1936 32 bit (Intel)] on win32
        Type "help", "copyright", "credits" or "license" for more information.
    
        >>> import golang
        00f8:err:module:import_dll Library libgolang.dll (which is needed by L"Z:\\home\\kirr\\src\\tools\\go\\pygo-win\\pygolang\\golang\\_sync.cp311-win32.pyd") not found
        00f8:err:module:import_dll Library libpyxruntime.dll (which is needed by L"Z:\\home\\kirr\\src\\tools\\go\\pygo-win\\pygolang\\golang\\_sync.cp311-win32.pyd") not found
        Traceback (most recent call last):
          File "<stdin>", line 1, in <module>
          File "Z:\home\kirr\src\tools\go\pygo-win\pygolang\golang\__init__.py", line 41, in <module>
            from golang._gopath import gimport  # make gimport available from golang
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File "Z:\home\kirr\src\tools\go\pygo-win\pygolang\golang\_gopath.py", line 65, in <module>
            from golang import sync
          File "Z:\home\kirr\src\tools\go\pygo-win\pygolang\golang\sync.py", line 36, in <module>
            from golang._sync import \
        ImportError: DLL load failed while importing _sync: Модуль не найден.
    
    -> Fix that by doing dylink_prepare_dso('golang.runtime.libgolang')
    before importing anything else.
    f59a785d
__init__.py 14.8 KB