Python 将SWIG与CMake和distutils相结合
我有一个SWIG项目,目前正在用于Python绑定。我使用CMake作为构建系统,我有点困惑如何处理SWIG 在SWIG文档的一部分中,它告诉我们。到目前为止,这是我一直在做的事情,它工作得比较好,但在我尝试安装Python模块时会导致一些问题。我回顾了SWIG文档和它。再看一看,distutils似乎可以 这些似乎有点冲突,因为distutils方法将处理构建和安装,因此使用CMake和distutils将有两个系统构建绑定。我的希望是,使用distutils将使安装比使用CMake安装到当前环境所需的步骤更简单 我对此有两个主要问题:Python 将SWIG与CMake和distutils相结合,python,c++,swig,distutils,Python,C++,Swig,Distutils,我有一个SWIG项目,目前正在用于Python绑定。我使用CMake作为构建系统,我有点困惑如何处理SWIG 在SWIG文档的一部分中,它告诉我们。到目前为止,这是我一直在做的事情,它工作得比较好,但在我尝试安装Python模块时会导致一些问题。我回顾了SWIG文档和它。再看一看,distutils似乎可以 这些似乎有点冲突,因为distutils方法将处理构建和安装,因此使用CMake和distutils将有两个系统构建绑定。我的希望是,使用distutils将使安装比使用CMake安装到当前
更新:不久前,我制作了一个演示如何在Python中使用SWIG和CMake的示例。1。我以前使用过GNU自动工具,现在我使用CMake/CPackDeb进行构建、安装和分发。2.Distutils不能在语言之间“移植”——它是Python的东西。我个人为许多语言创建了绑定,并且有一个通用接口文件和特定于语言的文件。@JensMunk这种方法在python virtualenv(或其他语言中的等效工具)中的安装效果如何?我知道distutils是python的东西,但我想知道它是否是为每种语言(distutils用于python、maven用于java等)创建项目文件的好方法。您可以使用
dpkg deb-X your_package.deb virtual_location
将文件提取到虚拟目录中。您的包包包包含python和二进制文件。为了使事情变得整洁,我将库和SWIG接口分离成单独的二进制文件/包。有一个包系统很好,它允许您跨二进制文件重用库。1。我以前使用过GNU自动工具,现在我使用CMake/CPackDeb进行构建、安装和分发。2.Distutils不能在语言之间“移植”——它是Python的东西。我个人为许多语言创建了绑定,并且有一个通用接口文件和特定于语言的文件。@JensMunk这种方法在python virtualenv(或其他语言中的等效工具)中的安装效果如何?我知道distutils是python的东西,但我想知道它是否是为每种语言(distutils用于python、maven用于java等)创建项目文件的好方法。您可以使用dpkg deb-X your_package.deb virtual_location
将文件提取到虚拟目录中。您的包包包包含python和二进制文件。为了使事情变得整洁,我将库和SWIG接口分离成单独的二进制文件/包。有一个软件包系统很好,它允许您跨二进制文件重用库。