2016-11-04 4 views
1

Я пытаюсь установить python-lzo на Mac OS Sierra. Я использовал brew установить с lzo библиотеку:Файл не найден Ошибка при установке python-lzo

brew update 
brew install lzo 

затем я пытаюсь установить python-lzo с помощью виртуальной среды и pip:

$ virtualenv ./env 
$ . ./env/bin/activate 
$ pip install python-lzo 

Который дает мне следующий вывод:

Collecting python-lzo 
    Using cached python-lzo-1.11.tar.gz 
Building wheels for collected packages: python-lzo 
    Running setup.py bdist_wheel for python-lzo: started 
    Running setup.py bdist_wheel for python-lzo: finished with status 'error' 
    Complete output from command /usr/local/opt/python/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/38/v_r4bjvx7dz626x16nh6jcn00000gn/T/pip-build-wDRYjx/python-lzo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /var/folders/38/v_r4bjvx7dz626x16nh6jcn00000gn/T/tmp_ueOY4pip-wheel- --python-tag cp27: 
    /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:251: UserWarning: 'licence' distribution option is deprecated; use 'license' 
    warnings.warn(msg) 
    running bdist_wheel 
    running build 
    running build_ext 
    building 'lzo' extension 
    creating build 
    creating build/temp.macosx-10.11-x86_64-2.7 
    clang -fno-strict-aliasing -fno-common -dynamic -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/include/lzo -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c lzomodule.c -o build/temp.macosx-10.11-x86_64-2.7/lzomodule.o 
    lzomodule.c:35:10: fatal error: 'lzo1x.h' file not found 
    #include <lzo1x.h> 
     ^
    1 error generated. 
    error: command 'clang' failed with exit status 1 

    ---------------------------------------- 
    Running setup.py clean for python-lzo 
Failed to build python-lzo 
Installing collected packages: python-lzo 
    Running setup.py install for python-lzo: started 
    Running setup.py install for python-lzo: finished with status 'error' 
    Complete output from command /usr/local/opt/python/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/38/v_r4bjvx7dz626x16nh6jcn00000gn/T/pip-build-wDRYjx/python-lzo/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/38/v_r4bjvx7dz626x16nh6jcn00000gn/T/pip-8RUWxo-record/install-record.txt --single-version-externally-managed --compile: 
    /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:251: UserWarning: 'licence' distribution option is deprecated; use 'license' 
     warnings.warn(msg) 
    running install 
    running build 
    running build_ext 
    building 'lzo' extension 
    creating build 
    creating build/temp.macosx-10.11-x86_64-2.7 
    clang -fno-strict-aliasing -fno-common -dynamic -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/include/lzo -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c lzomodule.c -o build/temp.macosx-10.11-x86_64-2.7/lzomodule.o 
    lzomodule.c:35:10: fatal error: 'lzo1x.h' file not found 
    #include <lzo1x.h> 
      ^
    1 error generated. 
    error: command 'clang' failed with exit status 1 

    ---------------------------------------- 

Файл lzo1x.h существует здесь: /usr/local/opt/lzo/include/lzo/ или с brew Команда:

$ ls $(brew --prefix lzo)/include/lzo/ 

Я тогда попытался установить CFLAGS envronment переменные, но по-прежнему имеют ту же ошибку:

$ export EXTRA_CFLAGS=-I/usr/local/opt/lzo/include && export EXTRA_CXXFLAGS=-I/usr/local/opt/lzo/include && export EXTRA_LDFLAGS=-L/usr/local/opt/lzo/lib && pip install 

И в отчаянии:

$ export EXTRA_CFLAGS=-I/usr/local/opt/lzo/include/lzo && export EXTRA_CXXFLAGS=-I/usr/local/opt/lzo/include/lzo && export EXTRA_LDFLAGS=-L/usr/local/opt/lzo/lib && pip install python-lzo 

Все та же ошибка сообщение, любые идеи?

- Updated--
также попытался прохождения переменные непосредственно в pip:

pip install --global-option='build_ext' --global-option='-I/usr/local/opt' --global-option='-I/usr/local/opt/lzo/include/lzo' --global-option='-L/usr/local/opt/lzo/lib' python-lzo 

На этот раз я получаю немного другую ошибку:

cmdoptions.check_install_build_global(options) 
Collecting python-lzo 
    Using cached python-lzo-1.11.tar.gz 
Skipping bdist_wheel for python-lzo, due to binaries being disabled for it. 
Installing collected packages: python-lzo 
    Running setup.py install for python-lzo ... error 
    Complete output from command /Users/myuser/dir/devel/lzo_example/env/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/38/v_r4bjvx7dz626x16nh6jcn00000gn/T/pip-build-14vN3V/python-lzo/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" build_ext -I/usr/local/opt -I/usr/local/opt/lzo/include/lzo -L/usr/local/opt/lzo/lib install --record /var/folders/38/v_r4bjvx7dz626x16nh6jcn00000gn/T/pip-Gq5pjs-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/emson/Dropbox/devel/aws/coursenut_bigdata/lzo_example/env/bin/../include/site/python2.7/python-lzo: 
    /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:251: UserWarning: 'licence' distribution option is deprecated; use 'license' 
     warnings.warn(msg) 
    running build_ext 
    building 'lzo' extension 
    creating build 
    creating build/temp.macosx-10.11-x86_64-2.7 
    clang -fno-strict-aliasing -fno-common -dynamic -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/include/lzo -I/usr/local/opt/lzo/include/lzo -I/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c lzomodule.c -o build/temp.macosx-10.11-x86_64-2.7/lzomodule.o 
    In file included from lzomodule.c:35: 
    /usr/local/opt/lzo/include/lzo/lzo1x.h:33:10: fatal error: 'lzo/lzoconf.h' file not found 
    #include <lzo/lzoconf.h> 
      ^
    1 error generated. 
    error: command 'clang' failed with exit status 1 

Большое спасибо

- УСПЕХ ---

Большое спасибо @daphtdazz ваше решение (см. Ниже) работало! я изменил его немного, чтобы использовать команду brew --cellar, чтобы получить расположение lzo файлов:

export C_INCLUDE_PATH=$(brew --cellar lzo)/2.09/include/lzo:$(brew --cellar lzo)/2.09/include/ export LIBRARY_PATH=/usr/local/lib pip install python-lzo

ответ

4

я получил те же результаты, как и вы, и в конце концов это работало для меня:

export C_INCLUDE_PATH=/usr/local/Cellar/lzo/2.09/include/lzo:/usr/local/Cellar/lzo/2.09/include 
export LIBRARY_PATH=/usr/local/lib 
pip install python-lzo 

(Очевидно, что вам может понадобиться для настройки, зависящие от версии дистрибутива lzo заварной вы установили.)

Который ответил на вопрос для меня, но я не понимаю, почему те не настроены правильно ...

Я инструменты для разработчиков Xcode установлен, хотя, как хорошо, и я думаю, что они раньше столкнулись с brew и pip, так что, возможно, это все. Я буду продолжать смотреть, и если я это обработаю, я обновлю этот ответ.

Редактировать

Посмотрев на файл setup.py для python-lzo, кажется, есть немного странностей происходит, в частности, я обеспокоен тем, что в Windows, и включают пути добавляются, что свидетельствует о lzo распределение источников не очень хорошо организовано. Но, похоже, не существует разработанного способа достижения этого на macOS с установкой на основе пива, поэтому я думаю, что включить его часть, по крайней мере, лучше всего решить с помощью дополнительной переменной окружения.

+0

Фантастично, что работает! Спасибо. Я немного изменил вашу версию, чтобы использовать команду 'brew -cellar', таким образом:' export C_INCLUDE_PATH = $ (brew -cellar lzo) /2.09/include/lzo: $ (brew -cellar lzo) /2.09/include/; export LIBRARY_PATH =/usr/local/lib; pip install python-lzo' – emson

+0

Изменить с 2.09 по 2.10 для последующей базы данных пива –

0

Я не использую MacOS, но вы можете попробовать дать окр. переменные непосредственно в PIP?

Итак, такие же команды, как и во второй попытке (без экспорта), но без & &.

foo=bar pim=pam pip install ...

Кроме того, вы проверили, что недостающий файл существует в каталогах, которые вы включили?

+0

Спасибо, Майкл .... Я пробовал передавать их в качестве параметров глобальной опции, например. pip install --global-option = 'build_ext' --global-option = '- I/usr/local/opt' --global-option = '- I/usr/local/opt/lzo/include/lzo' - -global-option = '- L/usr/local/opt/lzo/lib' python-lzo, но все равно получить аналогичную ошибку - СМОТРЕТЬ ОБНОВЛЕНО ВЫШЕ – emson