我为 python 创建了一个 swig 包装器 c++。我已经安装了这两个文件(python 和 .so 文件)但是当我导入我的 python 文件时,出现了这个错误:
Traceback (most recent call last): File "/home/root/test", line 1, in <module> import Systemtechnik.libsysproject File "/usr/lib/python3.9/Systemtechnik/libsysproject.py", line 13, in <module> from . import _libsysproject ImportError: cannot import name '_libsysproject' from 'Systemtechnik' (unknown location)
我已经将 .so 文件复制到不同的地方,但没有任何帮助。 我在论坛上什么也没找到。 chatGPz 也没有有用的信息。
这是生成文件:
APP = libsysproject
LIBSOURCES=*.cpp
OUTS = *.o
NAME := sysproject
MAJOR = 1.0
MINOR = 1
VERSION = $(MAJOR).$(MINOR)
all: lib$(NAME).so
lib$(NAME).so.$(VERSION): compile
$(CC) $(LDFLAGS) $(OUTS) -shared -Wl,-soname,_lib$(NAME).so.$(MAJOR) -o _lib$(NAME).so.$(VERSION)
lib$(NAME).so: lib$(NAME).so.$(VERSION)
rm -f _lib$(NAME).so.$(MAJOR) _lib$(NAME).so
ln -s _lib$(NAME).so.$(VERSION) _lib$(NAME).so.$(MAJOR)
ln -s _lib$(NAME).so.$(MAJOR) _lib$(NAME).so
compile: swig
$(CC) $(CFLAGS) -c -fPIC libsysproject.cpp libsysproject_wrap.cxx -Irecipe-sysroot/usr/include/python3.9
swig:
swig -c++ -python -py3 libsysproject.i
clean:
rm -rf *.o *.so *.so.*
整个构建使用 petalinux/yocto。