Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Python导入与dlib一起工作(使用cmake和osx)_Python_Cmake_Dlib - Fatal编程技术网

如何让Python导入与dlib一起工作(使用cmake和osx)

如何让Python导入与dlib一起工作(使用cmake和osx),python,cmake,dlib,Python,Cmake,Dlib,很抱歉,如果这是基本的,但我正在尝试安装dlib以与python一起使用,如()“用python制作您自己的对象检测器!” 我下载了安装文件,解压缩并使用了安装说明中的cmake() 看起来效果不错 然而,在Python中键入“import dlib”只会产生ImportError:没有名为dlib的模块 你知道我如何告诉Python如何查找/使用这个东西吗?< /P> < p>你正在编译C++示例程序。python示例位于python_examples文件夹中。此外,每个示例顶部都有说明,告诉

很抱歉,如果这是基本的,但我正在尝试安装dlib以与python一起使用,如()“用python制作您自己的对象检测器!”

我下载了安装文件,解压缩并使用了安装说明中的cmake()

看起来效果不错

然而,在Python中键入“import dlib”只会产生ImportError:没有名为dlib的模块


你知道我如何告诉Python如何查找/使用这个东西吗?< /P> < p>你正在编译C++示例程序。python示例位于python_examples文件夹中。此外,每个示例顶部都有说明,告诉您如何使用它。

在ubuntu上,我必须执行以下操作:

sudo apt-get install libboost-python-dev cmake
cd至dlib-18.15/python_示例

然后:

然后,我将
dlib.so
复制到dist包中,使其位于我的路径中

sudo cp dlib.so /usr/local/lib/python2.7/dist-packages/

根据文档
compile_dlib_python_module.bat
将在安装了
CMake
boost python
后在任何操作系统上都能工作

我终于成功了!稍后我会发布一篇关于这方面的详细博客文章,但这里是目前的要点。基本上,当我手动检查cmake的输出时,dlib是针对Python的系统版本而不是Python的自制版本进行编译和链接的

如果您对细节感兴趣,那么似乎cmake正在尝试编译并链接
/usr/lib/libpython2.7.dylib
。但是,这是Python的系统版本。它应该编译一个针对
/usr/local/ceral/python/2.7.8/Frameworks/python.framework/Versions/2.7/lib/libpython2.7.dylib的链接,这是python的自制版本


我手动编辑了
CMakeFiles/dlib_u2;.dir/build.make
/CMakeFiles/dlib_2;.dir/link.txt
以指向自制动态库文件,而不是系统动态库文件。我能够编译dlib,然后运行它而没有任何错误。而且,我能够毫无问题地运行对象检测器。

您可以将
-DPYTHON_库:FILEPATH=/path/to/your/libpython2.7.dylib
传递到
cmake

/compile\u dlib\u python\u module.bat
所做的是

mkdir build
cd build
cmake ../../tools/python
因此,只需逐个运行命令,而不是

cmake ../../tools/python


请注意,现在最简单的安装方法是使用:

sudo python setup.py install

对于Python 3支持,请使用:

python setup.py install --yes DPYTHON3

如果你用康达,那就容易多了

conda install -c menpo dlib

OSX(python3)的Dlib安装说明

安装默认dlib

pip3 install dlib
以下操作会提供一些加速 在启用AVX、SSE2、SSE4指令的情况下安装dlib(从dlib.net下载源代码并从目录中执行)

如果您已经使用cmake命令从github编译了源代码。 然后您需要运行python程序来调用dlib api

您应该编译dlib Python API,如下所示:

sudo python setup.py install

如果你有一个支持AVX指令的CPU,因为这会使一些东西运行得更快。注意,您需要安装BoostPython来编译python API。(链接自README.md)


这对我很有用。

我在你身上遇到了同样的错误

当我查看文件夹
“C:\Anaconda3\Lib\site packages”
,我发现
“dlib-19.8.0-py3.4-win-amd64.egg\”
,这意味着我已经成功编译了dlib,但是
“C:\Anaconda3\Lib\site packages”
下没有
文件夹,它在
“dlib-19.8.0-py3.4-win-amd64.egg\”文件夹中,因此,解决方案很简单:只需将
“dlib\”
文件夹复制到路径
“C:\Anaconda3\Lib\site packages”
,Python解释器就会找到模块并成功导入

希望这会有帮助


谢谢。随后,我找到了python_示例指令,brew安装了boost python,运行了compile_dlib_python_module.bat,启动了python并键入import dlib和python segfaulted(“分段错误:11”标识符:python版本:2.7.8(2.7.8)代码类型:X86-64(本机)父进程:bash[8652]负责人:Terminal[184]崩溃线程:0调度队列:com.apple.main Thread)有什么想法吗?谢谢-我做了与Mac相同的东西,除了Python导入dlib now Segfults之外,它还可以工作。接下来…快速谷歌一下,它似乎与boost Python有关,你能将完整的回溯添加到pastebin吗?这是回溯brew boost文件是boost-1.56.0.mavericks.Batch.1.tar.gz,我现在在osx 10.9.5上。如果你愿意,请提前感谢你能从系统python导入什么吗?我刚刚试过系统python,它也出现了一个稍微不同的错误。我猜这可能与OSX Mavericks与19版不兼容有关。这应该是可以接受的答案
conda install -c menpo dlib
brew uninstall boost-python
brew uninstall boost
brew install boost-python --with-python3 --without-python
pip3 install dlib
python setup.py install --yes USE_AVX_INSTRUCTIONS --yes USE_SSE2_INSTRUCTIONS --yes USE_SSE4_INSTRUCTIONS
sudo python setup.py install
sudo python setup.py install --yes USE_AVX_INSTRUCTIONS