带扩展的复杂python打包

带扩展的复杂python打包,python,c++,swig,packaging,Python,C++,Swig,Packaging,我目前正在同情我的包装过程 我有一个C++的大型开源库,通常设计为安装在系统中,但我希望它能在Python VielalEnv中安装,就像这个 cd /path/to/mycpplibrary sh ./autogen.sh ./configure –prefix=/home/user/virtualenvs/myvirtualenv (absolute path needed here) make make install 这些命令编译.so文件并将其发送到文件夹/home/user/vir

我目前正在同情我的包装过程

<>我有一个C++的大型开源库,通常设计为安装在系统中,但我希望它能在Python VielalEnv中安装,就像这个

cd /path/to/mycpplibrary
sh ./autogen.sh
./configure –prefix=/home/user/virtualenvs/myvirtualenv (absolute path needed here)
make
make install
这些命令编译.so文件并将其发送到文件夹
/home/user/virtualenvs/myvirtualenv

现在我有了使用这个库的swig包。这些命令生成wrapped.cpp文件

cd /path/to/swig-package
workon myvirtualenv
python setup.py wrap
现在是编译它的时候了,但是它链接到了先前创建的.so文件

LD_RUN_PATH=/home/user/virtualenvs/myvirtualenv/lib/ python setup.py build
python setup.py install
我需要为生成过程指定
LD\u RUN\u PATH=/home/user/virtualenvs/myvirtualenv/lib/
,以查找.so文件

这是一个看似复杂的安装过程。我只是不认为把所有的命令行放到一个.sh文件中是一个好的解决方案。如何将包含
库.so
文件和
包装的.so
文件的swig包打包到一个鸡蛋或轮子中?
谢谢

通常整个安装都是通过setup.py文件完成的。你为什么做它之外的事?我有点困惑,因为我看不到我的期望,也不明白它背后的推理。你的意思是,库的所有C++代码需要在包<代码> SWIG包< /代码>中编译?我已经说过了,但是配置和makefile是复杂的,在这种情况下,我需要重写setup.py中的所有make文件,这需要大量的工作。你知道吗?