为扩展模块查找动态库的最佳实践是什么。? 我有一个Python模块,它依赖于使用CMASE构建的C++扩展。有多种方法可以构建这些C++扩展。例如,我有python2.7的C扩展和Python3.6的C扩展。因为我使用CMake将构建文件与源文件分开,所以我需要在运行时找到正确的二进制文件

为扩展模块查找动态库的最佳实践是什么。? 我有一个Python模块,它依赖于使用CMASE构建的C++扩展。有多种方法可以构建这些C++扩展。例如,我有python2.7的C扩展和Python3.6的C扩展。因为我使用CMake将构建文件与源文件分开,所以我需要在运行时找到正确的二进制文件,python,python-2.7,python-3.x,cmake,setuptools,Python,Python 2.7,Python 3.x,Cmake,Setuptools,考虑最小的模块设置: *setup.py *CMakeLists.txt *src/ *mymodule.c *mymodule/ *_uuuinit_uuuuu.py *27号楼/ *CMakeCache.txt *解放党 *libmymodule.so *36号楼/ *CMakeCache.txt *解放党 *libmymodule.so *build27_调试/ *CMakeCache.txt *解放党 *libmymodule.so 我以前见过的解决方案通常会将构建文件复制到源代码存储

考虑最小的模块设置:

*setup.py
*CMakeLists.txt
*src/
*mymodule.c
*mymodule/
*_uuuinit_uuuuu.py
*27号楼/
*CMakeCache.txt
*解放党
*libmymodule.so
*36号楼/
*CMakeCache.txt
*解放党
*libmymodule.so
*build27_调试/
*CMakeCache.txt
*解放党
*libmymodule.so
我以前见过的解决方案通常会将构建文件复制到源代码存储库中,这对我来说似乎是一种反模式

允许
setup.py
找到正确版本的动态库的最佳实践是什么?是否可以将生成文件与源文件分开


到目前为止:

到目前为止,我提出的唯一解决方案是将python源文件复制到适当的构建目录中,从那里我可以控制目录名

但是,因为我正在开发模块,所以我确实希望运行
python setup.py develope
pip install-e.
以可编辑/开发模式安装模块。这样,当我对
\uuuu init\uuuu.py
进行更改时,我会立即看到它们。如果我将python模块复制到build目录,则无法实现此行为

我也考虑过使用符号链接,但遗憾的是,我无法在windows上使用它


其他信息:

我正在运行几个与我创建的构建文件夹相对应的VirtualNV

我试图用的真正回购是我的fork of(它的设置方式比这个最小的例子要复杂一些)