很抱歉,如果这是基本的,但我正在尝试安装dlib以与(the source)中提到的python一起使用“在Python中创建自己的对象检测器!”。
我按照安装说明(http://blog.dlib.net/2014/04/dlib-187-released-make-your-own-object.html)下载了安装文件,解压缩并使用了cmake
[UIScreen mainScreen].scale
似乎工作正常
但是在Python中输入“import dlib”只会给出ImportError:没有名为dlib的模块。
我知道如何告诉Python如何查找/使用该东西吗?
答案 0 :(得分:8)
请注意,现在最简单的安装方法是使用:
sudo python setup.py install
答案 1 :(得分:5)
您可以将-DPYTHON_LIBRARY:FILEPATH=/path/to/your/libpython2.7.dylib
传递给cmake
,而不是手动编辑文件。
./compile_dlib_python_module.bat
做的是
mkdir build
cd build
cmake ../../tools/python
因此,只需逐个运行命令,而不是
cmake ../../tools/python
运行
cmake ../../tools/python -DPYTHON_LIBRARY:FILEPATH=/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib
答案 2 :(得分:5)
OSX(python3)的Dlib安装说明
brew uninstall boost-python
brew uninstall boost
brew install boost-python --with-python3 --without-python
安装默认dlib
pip3 install dlib
以下提供一些加速 安装启用了AVX,SSE2,SSE4指令的dlib(从dlib.net下载源代码并从目录中执行)。
python setup.py install --yes USE_AVX_INSTRUCTIONS --yes USE_SSE2_INSTRUCTIONS --yes USE_SSE4_INSTRUCTIONS
答案 3 :(得分:4)
我终于开始工作了!我稍后会发布一篇关于此的详细博客文章,但这是现在的要点。基本上,当我手动检查cmake的输出时,dlib正在编译和链接系统版本的Python 而不是的Homebrew版本的python。
如果您对详细信息感兴趣,似乎cmake正在尝试编译并链接/usr/lib/libpython2.7.dylib
。但是,这是Python的系统版本。它应该编译一个与/usr/local/Cellar/python/2.7.8/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib
的链接,这是Python的Homebrew版本。
我手动编辑CMakeFiles/dlib_.dir/build.make
和/CMakeFiles/dlib_.dir/link.txt
以指向Homebrew dylib文件而不是系统文件。我能够编译dlib然后在没有段错误的情况下运行它。此外,我能够毫无问题地运行物体探测器。
答案 4 :(得分:1)
您正在编译C ++示例程序。 python示例位于python_examples文件夹中。此外,每个示例都在顶部有说明,告诉您如何使用它。
答案 5 :(得分:1)
答案 6 :(得分:0)
用于Python 3支持使用:
python setup.py install --yes DPYTHON3
答案 7 :(得分:0)
如果您已经通过cmake命令从github编译了dlib源代码。 然后你想运行python程序来调用dlib api。
您应该编译dlib Python API,如下所示
class Book:
def __init__(self, *args, **kwargs):
attributes = ['name', 'author']
for item in zip(attributes, args):
kwargs[item[0]] = item[1]
self.name = kwargs.get('name')
self.author = kwargs.get('author')
def show(self):
print('Name={name}, author={author}'.format(name=self.name, author=self.author))
book1 = Book('Python', 'Guido')
book1.show()
book2 = Book(name='Python', author='Guido')
book2.show()
book3 = Book('Python', author='Guido')
或者
Name=Python, author=Guido
Name=Python, author=Guido
Name=Python, author=Guido
如果你有一个支持AVX指令的CPU,因为这会使一些事情运行得更快。请注意,您需要安装boost-python来编译Python API。(从dlib README.md链接)
它对我有用。
答案 8 :(得分:0)