首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在pip安装python-lzo时文件未找到错误

在pip安装python-lzo时文件未找到错误
EN

Stack Overflow用户
提问于 2016-11-04 13:37:54
回答 3查看 2.9K关注 0票数 2

我正在试著在MacOS塞拉利昂上安装python-lzo。我使用brew安装了c lzo库:

代码语言:javascript
运行
复制
brew update
brew install lzo

然后,我尝试使用虚拟环境和python-lzo安装pip

代码语言:javascript
运行
复制
$ virtualenv ./env
$ . ./env/bin/activate
$ pip install python-lzo

这给了我以下输出:

代码语言:javascript
运行
复制
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命令:

代码语言:javascript
运行
复制
$ ls $(brew --prefix lzo)/include/lzo/

然后,我尝试设置CFLAGS环境变量,但仍然存在相同的错误:

代码语言:javascript
运行
复制
$ 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

绝望中:

代码语言:javascript
运行
复制
$ 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

还是同样的错误信息,有什么想法吗?

--更新--

还尝试将变量直接传递到pip中。

代码语言:javascript
运行
复制
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

这一次我得到了一个稍微不同的错误:

代码语言:javascript
运行
复制
  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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-08 13:19:14

我得到了和你一样的结果,最终这个结果对我有用:

代码语言:javascript
运行
复制
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 brew发行版的版本来调整这些版本。)

这回答了我的问题,但我不明白为什么那些配置不正确.

不过,我也安装了Xcode开发工具,我认为它们以前与brewpip冲突过,所以可能就是这样。我会继续看一看,如果我弄清楚了,我会更新这个答案。

编辑

看看setup.pypython-lzo文件,似乎有点奇怪,特别是我担心在python-lzo上都添加了两个包含路径,这意味着lzo源代码分发没有很好的安排。但是似乎没有一种设计的方法可以通过brew安装在macOS上实现这一点,所以我认为它的包含部分至少最好用额外的环境变量来解决。

票数 4
EN

Stack Overflow用户

发布于 2016-11-04 13:51:22

我不使用MacOS,但是你能试着给出env吗?变量直接到PIP?

因此,与第二次尝试中的命令相同(没有导出),但没有&&。

foo=bar pim=pam pip install ...

另外,您是否检查了所包含的目录中是否存在缺少的文件?

票数 0
EN

Stack Overflow用户

发布于 2022-10-01 11:18:45

摘自这里,在M1芯片上

代码语言:javascript
运行
复制
# Install lzo homebrew 
arch -arm64 brew install lzo

# Configure include path and lib path
export C_INCLUDE_PATH=/opt/homebrew/Cellar/lzo/2.10/include/lzo:/opt/homebrew/Cellar/lzo/2.10/include/
export LIBRARY_PATH=/opt/homebrew/lib

# Install
pip3 install python-lzo

Installing collected packages: python-lzo
  Running setup.py install for python-lzo ... done
Successfully installed python-lzo-1.12

这是我的日志

代码语言:javascript
运行
复制
soner@Soners-MacBook-Pro ~ % arch -arm64 brew install lzo
==> Downloading https://ghcr.io/v2/homebrew/core/lzo/manifests/2.10
Already downloaded: /Users/soner/Library/Caches/Homebrew/downloads/d4aa5b0c239912c53bc857d1012c6b7feb4acb509618f5e100f95bf8521f08e7--lzo-2.10.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/lzo/blobs/sha256:e16072e8ef7a88
Already downloaded: /Users/soner/Library/Caches/Homebrew/downloads/2e2528259c080227ff9fcce6ab15d0f0415a85dad7f909d9a803d1f863f43960--lzo--2.10.arm64_monterey.bottle.tar.gz
==> Pouring lzo--2.10.arm64_monterey.bottle.tar.gz
  /opt/homebrew/Cellar/lzo/2.10: 31 files, 565.6KB
==> Running `brew cleanup lzo`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
soner@Soners-MacBook-Pro ~ % export C_INCLUDE_PATH=/opt/homebrew/Cellar/lzo/2.10/include/lzo:/opt/homebrew/Cellar/lzo/2.10/include/
soner@Soners-MacBook-Pro ~ % export LIBRARY_PATH=/opt/homebrew/lib
soner@Soners-MacBook-Pro ~ % pip3 install python-lzo
Collecting python-lzo
  Using cached python-lzo-1.14.tar.gz (14 kB)
  Preparing metadata (setup.py) ... done
Using legacy 'setup.py install' for python-lzo, since package 'wheel' is not installed.
Installing collected packages: python-lzo
  Running setup.py install for python-lzo ... done
Successfully installed python-lzo-1.14
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40424097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档