首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python distutils不包含SWIG生成的模块

python distutils不包含SWIG生成的模块
EN

Stack Overflow用户
提问于 2012-09-19 16:52:24
回答 3查看 4.1K关注 0票数 20

我正在使用distutils从我的项目创建一个rpm。我有这个目录树:

代码语言:javascript
运行
复制
project/
        my_module/
                 data/file.dat
                 my_module1.py
                 my_module2.py
        src/
            header1.h
            header2.h
            ext_module1.cpp
            ext_module2.cpp
            swig_module.i
        setup.py
        MANIFEST.in
        MANIFEST

我的setup.py

代码语言:javascript
运行
复制
from distutils.core import setup, Extension

module1 = Extension('my_module._module',
                sources=['src/ext_module1.cpp',
                         'src/ext_module2.cpp',
                         'src/swig_module.i'],
                swig_opts=['-c++', '-py3'],
                include_dirs=[...],
                runtime_library_dirs=[...],
                libraries=[...],
                extra_compile_args=['-Wno-write-strings'])

setup(  name            = 'my_module',
        version         = '0.6',
        author          = 'microo8',
        author_email    = 'magyarvladimir@gmail.com',
        description     = '',
        license         = 'GPLv3',
        url             = '',
        platforms       = ['x86_64'],
        ext_modules     = [module1],
        packages        = ['my_module'],
        package_dir     = {'my_module': 'my_module'},
        package_data    = {'my_module': ['data/*.dat']} )

我的MANIFEST.in文件:

代码语言:javascript
运行
复制
include src/header1.h
include src/header2.h

python3 setup.py sdist会自动生成MANIFEST文件。当我运行python3 setup.py bdist_rpm时,它会编译并创建正确的rpm包。但问题是,当我在C++源代码上运行SWIG时,它会创建一个包装二进制_module.cpython32-mu.so文件的module.py文件,该文件是用module_wrap.cpp文件创建的,并且不会复制到my_module目录。

我必须向setup.py文件写入什么内容才能自动复制SWIG生成的python模块?

我还有另一个问题:当我安装rpm包时,我希望在/usr/bin中创建一个可执行文件来运行应用程序(例如,如果my_module/my_module1.py是应用程序的启动脚本,那么我可以在bash:$ my_module1中运行)。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12491328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档