使用 SWIG 在 Linux 上创建 Python 包装器

问题描述 投票:0回答:0

我为 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。

python c++ python-3.x swig
© www.soinside.com 2019 - 2024. All rights reserved.