swig生成的python代码如何制作package?

2023-12-20 16:31:26

我们写了一个非常棒的python脚本,然后也想分享给其他人使用呢,怎么搞?

我们用别人写的库的时候pip install 就行了,爽的一比。

现在要让别的爽一下行不行,怎么搞呢?

书接上回我们用swig生成了python语言的代码,好用到飞起。现在要分享给其他人用怎么办?

当前目录下有这么四个文件:

openbbf.py,? 我们用swig生成的python封装代码?

openbbf_api.py? ?我们自己写的调用python接口的进一步封装

_openbbf.so? ? 我们用swig生成后编译好的.so, swig生成的默认就是这个名称

setup.py? ? ? ? ?我们用来制作package的脚本

setup.py怎么写呢?

import subprocess
from setuptools import setup
from distutils.command.install import install as _install


class install(_install):
    def run(self):
        #subprocess.call(['make', 'clean', '-C', 'src'])
        #subprocess.call(['make', '-C', 'src'])
        _install.run(self)


setup(
    name='openbbf',
    version='1.0.0',
    author='pcl',
    packages=[''],
    package_data={'': ['_openbbf.so', 'openbbf_api.py']},
    py_modules="openbbf.py",
    cmdclass={'install': install},
)

具体setup这个函数的参数

参考:Python 打包配置文件 setup.py 详解_python 打包setup-CSDN博客

我们主要只用了 package_data, py_modules, version这几个。

然后在这个目录中执行

pip wheel .

在当前目录下生成openbbf-1.0.0-py3-none-any.whl

用pip install 即可将这个package 安装到~/.local/lib/python3.8/site-packages这个目录中。

然后用python3 运行就可以import openbbf了。

?当然还可以用下面的命令生成 .tar.gz,也是可以用pip install的。

python3 setup.py sdist

当然,如果你直接把当前目录复制给别人,让他运行下面的命令自行安装也是可以的。

pip install . 

文章来源:https://blog.csdn.net/v6543210/article/details/135100840
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。