代码之家  ›  专栏  ›  技术社区  ›  CoreyD

为什么我的setup.py脚本会出现此错误?

  •  0
  • CoreyD  · 技术社区  · 14 年前

    所以我有一个C++类,我做了Python包装,并且我制作了一个Stupp.pyfile来编译它,以便在Python中使用它。当我尝试运行python setup.py install时,会得到以下错误:

    lipo: can't create output file: build/temp.macosx-10.5-fat3-2.7/../tools/transport-stream/TransportStreamPacket_py.o (No such file or directory)
    error: command 'gcc-4.0' failed with exit status 1
    

    我认为问题不在于正在编译的文件,我认为我设置的setup.py一定是错误的。以下是我的setup.py文件的外观:

    from distutils.core import setup, Extension
    
    module1 = Extension('CL_TransportStreamPacket_py',
                    sources = ['../tools/transport-stream/TransportStreamPacket_py.cpp'],
    
                    include_dirs = ['.',
                        '../common',
                        '../tools/transport-stream'],
    
                    library_dirs = ['common',
                        '../tools/transport-stream'],
    
                    libraries = ['Common',
                        'TransportStream']
    
                )
    
    setup (name = 'CL_TransportStreamPacket_py',
         version = '1.0',
         description = 'This is the transport stream packet parser',
         ext_modules = [module1])
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   Thomas Wouters    14 年前

    你的问题是最主要的 '..' 在源定义中。distutils使用源文件的名称来生成临时文件和输出文件的名称,但不规范化它们。重新组织源代码树(或移动setup.py文件),这样就不需要引用 '../tools/...'