PyVma can't work with its dependancy vulkan
realitix opened this issue · comments
Sadly this module can't work for now because of a missing feature of CFFI.
This line locks me.
I tried to bypass it and I finally managed to compile my extension but when I load the module, I got:
ImportError: while loading _pyvmamodule: failed to import ffi, lib from vulkan._vulkancache
Of course, _vulkancache
is a cdef
cache so you can't import lib
from it.
If it was part of the vulkan module proper, instead of its own thing, it should "just work". I admit that pyvma does not quite belong there as not everyone will need it, but as cffi is not made to facilitate separate modules, that may just be the best option.
Hi Fabian. I managed to make it work with a small workaround. I cast the struct to void*. I will release a proper version of pyvma in the next days. Follow the commits ;-)
You can try it again now.
It's not fully tested but it's a work in progreee
Took a while for me to take a look, sorry.
Failing on MSVC now, it seems:
E:\pyvma-master> py -3.6 .\setup.py install
running install
running bdist_egg
running egg_info
creating pyvma.egg-info
writing pyvma.egg-info\PKG-INFO
writing dependency_links to pyvma.egg-info\dependency_links.txt
writing requirements to pyvma.egg-info\requires.txt
writing top-level names to pyvma.egg-info\top_level.txt
writing manifest file 'pyvma.egg-info\SOURCES.txt'
reading manifest file 'pyvma.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pyvma.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
creating build
creating build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\pyvma
copying pyvma\__init__.py -> build\lib.win-amd64-3.6\pyvma
creating build\lib.win-amd64-3.6\pyvma\pyvma_build
copying pyvma\pyvma_build\vk_mem_alloc.h -> build\lib.win-amd64-3.6\pyvma\pyvma_build
creating build\lib.win-amd64-3.6\pyvma\pyvma_build\cdef
copying pyvma\pyvma_build\cdef\vk_mem_alloc.cdef.h -> build\lib.win-amd64-3.6\pyvma\pyvma_build\cdef
creating build\lib.win-amd64-3.6\pyvma\pyvma_build\include
creating build\lib.win-amd64-3.6\pyvma\pyvma_build\include\vulkan
copying pyvma\pyvma_build\include\vulkan\vulkan.h -> build\lib.win-amd64-3.6\pyvma\pyvma_build\include\vulkan
running build_ext
generating cffi module 'build\\temp.win-amd64-3.6\\Release\\_pyvma.c'
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
building '_pyvma' extension
creating build\temp.win-amd64-3.6\Release\build
creating build\temp.win-amd64-3.6\Release\build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release\build\temp.win-amd64-3.6\Release
E:\Visual Studio 2017 Community\VC\Tools\MSVC\14.11.25503\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files\Python36\include" "-IC:\Program Files\Python36\include" "-IE:\Visual Studio 2017 Community\VC\Tools\MSVC\14.11.25503\ATLMFC\include" "-IE:\Visual Studio 2017 Community\VC\Tools\MSVC\14.11.25503\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\winrt" /Tcbuild\temp.win-amd64-3.6\Release\_pyvma.c /Fobuild\temp.win-amd64-3.6\Release\build\temp.win-amd64-3.6\Release\_pyvma.obj -IE:\pyvma-master\pyvma\pyvma_build\include
_pyvma.c
build\temp.win-amd64-3.6\Release\_pyvma.c(9371): error C2143: syntax error: missing ')' before '*'
build\temp.win-amd64-3.6\Release\_pyvma.c(9371): error C2143: syntax error: missing '{' before '*'
build\temp.win-amd64-3.6\Release\_pyvma.c(9371): error C2059: syntax error: ')'
build\temp.win-amd64-3.6\Release\_pyvma.c(9372): error C2054: expected '(' to follow 'p'
build\temp.win-amd64-3.6\Release\_pyvma.c(9377): error C2061: syntax error: identifier '__fsid_t'
build\temp.win-amd64-3.6\Release\_pyvma.c(9377): error C2059: syntax error: '}'
build\temp.win-amd64-3.6\Release\_pyvma.c(14991): warning C4133: 'function': incompatible types - from 'unsigned long *' to 'size_t *'
build\temp.win-amd64-3.6\Release\_pyvma.c(15043): warning C4133: 'function': incompatible types - from 'unsigned long *' to 'size_t *'
build\temp.win-amd64-3.6\Release\_pyvma.c(15292): warning C4028: formal parameter 2 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15292): warning C4028: formal parameter 3 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15293): warning C4028: formal parameter 3 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15293): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15295): warning C4028: formal parameter 2 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15296): warning C4028: formal parameter 2 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15648): warning C4133: 'initializing': incompatible types - from 'const VkDeviceSize **' to 'const unsigned long **'
build\temp.win-amd64-3.6\Release\_pyvma.c(15680): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15681): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15751): warning C4028: formal parameter 3 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15751): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15753): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(15754): warning C4028: formal parameter 4 different from declaration
build\temp.win-amd64-3.6\Release\_pyvma.c(16376): error C2065: '__fsid_t': undeclared identifier
build\temp.win-amd64-3.6\Release\_pyvma.c(16376): error C2059: syntax error: ')'
build\temp.win-amd64-3.6\Release\_pyvma.c(16381): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16384): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16387): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16390): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16393): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16396): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16399): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16402): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16405): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16408): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16411): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16414): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16417): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16420): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16423): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16426): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16429): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16432): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16435): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16438): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16441): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16444): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16447): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16450): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16453): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16456): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16459): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16462): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16465): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16468): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16471): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16474): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16477): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16480): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16483): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16486): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16489): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16492): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16495): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16498): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16501): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16504): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16507): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16510): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16513): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16516): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16519): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16522): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16525): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16528): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16531): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16534): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16537): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16540): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16543): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16546): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16549): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16552): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16555): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16558): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16561): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16564): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16567): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16570): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16573): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16576): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16579): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16582): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16585): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16588): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16591): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16594): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16597): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16600): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16603): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16606): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16609): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16612): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16615): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16618): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16621): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16624): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16627): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16630): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16633): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16636): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16639): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16642): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16645): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16648): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16651): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16654): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16657): error C2059: syntax error: ','
build\temp.win-amd64-3.6\Release\_pyvma.c(16657): fatal error C1003: error count exceeds 100; stopping compilation
error: command 'E:\\Visual Studio 2017 Community\\VC\\Tools\\MSVC\\14.11.25503\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
Can you try again, it should be ok now