如何在 Yosemite 上设置 lxml 和 pypy?

2023-12-09

我想学习一些 lxml 和 pypy,所以我决定在我的 Yosemite Mac 上安装它。但经过三天的尝试,我仍然无法尝试 lxml,因为我无法正确设置。

这是我所做的:

  1. 做了一次干净的homebrew and xcode-select --install install

    proix:~ user$ brew --version
    0.9.5
    
    proix:~ user$ gcc --version
    Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
    Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
    Target: x86_64-apple-darwin14.0.0
    Thread model: posix
    
  2. 酿造libxml2 and libxslt- libxml2 代码 tar 3.4.1 和 libxslt 代码 tar 1.1.28;工作得很好。库已构建并安装。

    proix:~ user$ brew list
    libxml2 libxslt
    
    proix:~ user$ brew info
    2 kegs, 409 files, 14M
    
    proix:~ user$ ll /usr/local/Cellar/libxml2/2.9.2/lib/
    total 6096
    drwxr-xr-x   8 user  admin      272 27 Dez 11:46 .
    drwxr-xr-x  13 user  admin      442 27 Dez 11:46 ..
    drwxr-xr-x   3 user  admin      102 27 Dez 11:46 cmake
    -r--r--r--   1 user  admin  1184284 27 Dez 11:46 libxml2.2.dylib
    -r--r--r--   1 user  admin  1922024 27 Dez 11:46 libxml2.a
    lrwxr-xr-x   1 user  admin       15 27 Dez 11:46 libxml2.dylib -> libxml2.2.dylib
    drwxr-xr-x   3 user  admin      102 27 Dez 11:46 pkgconfig
    -r--r--r--   1 user  admin      269 27 Dez 11:46 xml2Conf.sh
    
    proix:~ user$ ll /usr/local/Cellar/libxslt/1.1.28/lib/
    total 1440
    drwxr-xr-x  10 user  admin     340 27 Dez 12:10 .
    drwxr-xr-x  13 user  admin     442 27 Dez 12:10 ..
    -r--r--r--   1 user  admin   76728 27 Dez 12:10 libexslt.0.dylib
    -r--r--r--   1 user  admin  101832 27 Dez 12:10 libexslt.a
    lrwxr-xr-x   1 user  admin      16 27 Dez 12:10 libexslt.dylib -> libexslt.0.dylib
    -r--r--r--   1 user  admin  214344 27 Dez 12:10 libxslt.1.dylib
    -r--r--r--   1 user  admin  326040 27 Dez 12:10 libxslt.a
    lrwxr-xr-x   1 user  admin      15 27 Dez 12:10 libxslt.dylib -> libxslt.1.dylib
    drwxr-xr-x   4 user  admin     136 27 Dez 12:10 pkgconfig
    -r--r--r--   1 user  admin     288 27 Dez 12:10 xsltConf.sh
    
  3. 但这些新版本并未被使用:

    $ xmllint --version
    xmllint: using libxml version 20900
    
  4. 所以我切换了下面的库/usr/lib通过恢复控制台(启动期间使用 command+R)。重新启动后,我得到了预期的结果:

    $ xmllint --version
    xmllint: using libxml version 20902`
    

    一句警告!不要尝试在正常登录会话期间执行此操作。如果操作系统找不到,它会让你的系统毫无用处libxml2.dylib不再。

  5. 创建一个 virtualenv 进行测试:

    virtualenv lxmllab
    source lxmllab/bin/activate`
    
  6. 安装 lxmlSTATIC_DEPS=true sudo pip install lxml。工作得也很好:

    (lxmllab)proix:~ user$ pip list
    backports.ssl-match-hostname (3.4.0.2)
    certifi (14.5.14)
    cffi (0.6)
    docutils (0.12)
    ipython (2.3.1)
    Jinja2 (2.7.3)
    lxml (3.4.1)
    MarkupSafe (0.23)
    nose (1.3.4)
    numpydoc (0.5)
    pip (6.0.3)
    py (1.4.26)
    Pygments (2.0.1)
    pyzmq (14.4.1)
    setuptools (8.2.1)
    Sphinx (1.2.3)
    tornado (4.0.2)
    
  7. Test it:

    (lxmllab)proix:~ user$ pypy -c 'from lxml import etree'
    Unknown libxml2 version: 20902
    Traceback (most recent call last):
      File "app_main.py", line 72, in run_toplevel
      File "app_main.py", line 562, in run_it
      File "<string>", line 1, in <module>
      File "lxml.etree.pyx", line 270, in init lxml.etree (src/lxml/lxml.etree.c:199039)
      File "lxml.etree.pyx", line 235, in lxml.etree.__unpackDottedVersion (src/lxml/lxml.etree.c:9383)
    TypeError: unsupported operand type for int(): 'unicode'
    
    (lxmllab)proix:~ user$ pypy
    Python 2.7.3 (5acfe049a5b0, May 21 2013, 13:47:22)
    [PyPy 2.0.2 with GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    And now for something completely different: ``redefining yellow seems like a
    better idea''
    ---- from lxml import etree
    Unknown libxml2 version: 20902
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "lxml.etree.pyx", line 270, in init lxml.etree (src/lxml/lxml.etree.c:199039)
      File "lxml.etree.pyx", line 235, in lxml.etree.__unpackDottedVersion (src/lxml/lxml.etree.c:9383)
    TypeError: unsupported operand type for int(): 'unicode'
    ---- 
    

这就是我被困住的地方。我尝试了一些修复,但没有成功:

  • Setting LD_LIBRARY_PATH and/or DYLD_LIBRARY_PATH到 libxml2 的位置。
  • 将 libxml2 dylib 复制到 virtualenvsite-packages/lxml folder.

有谁知道我应该做什么才能让它工作,或者让 lxml lib 在 Yosemite 下工作的正确方法是什么?


PyPy 不能与 lxml 一起使用(至少不是很好,即使它意外地可以),因为 lxml 是在使用 CPython C API 绑定的 Cython 之上构建的。考虑使用 lxml-cffi 代替https://github.com/amauryfa/lxml/tree/cffi

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Yosemite 上设置 lxml 和 pypy? 的相关文章

  • 如何编译Python 1.0

    出于某种反常的原因 我想尝试Python 1 0 我将如何编译它 或者更确切地说 可以使用当前编译器干净地编译的早期版本是什么 我使用的是 Mac OS X 10 5 不过因为这只是出于好奇 关于语言如何变化 所以在 Linux 虚拟机中编
  • 从 len 18000 的 Dask 数据帧中采样 n= 2000 会生成错误 当“replace=False”时,无法获取比总体更大的样本

    我有一个从 csv 文件创建的 dask 数据框 len daskdf 返回 18000 但当我ddSample daskdf sample 2000 我收到错误 ValueError Cannot take a larger sample
  • 在 Django 中处理 subprocess.call()

    我正在开发的应用程序的简单想法是用户给出 Linux 命令 Linux 命令的结果将显示在网络浏览器中 这是我的观点 py from django shortcuts import render to response from djang
  • TypeError:PyQt4.QtCore.QVariantAnimation 表示 C++ 抽象类,无法实例化

    我有这个 PyQt5 片段 我正在尝试将其转换为 PyQt4 PyQt5 版本运行得很好 但是当我尝试转换为 PyQt4 时 出现此错误 我删除了QtWidgets但我仍然收到此错误 我也尝试过实例化self animation QtCor
  • 使用 numba 计算向量和矩阵中的行之间的余弦相似度

    找到了这个gist https gist github com FedericoV 0e7d6d8c8794a99a7a42使用 numba 快速计算余弦相似度 import numba numba jit target cpu nopyt
  • 将ast节点转换为python对象

    给定一个ast可以自行计算的节点 但字面意义不够ast literal eval例如列表理解 src i 2 for i in range 10 a ast parse src Now a body 0 is an ast Expr and
  • 用户在对话框中输入

    python 中是否有任何库可用于图形用户输入 我知道关于tk但我相信需要一些代码才能做到这一点 我正在寻找最短的解决方案 a input Enter your string here 取而代之的是 我想要一个对话框 以便用户可以在那里输入
  • 如何模拟嵌套函数?

    我想模拟特定函数中的一些嵌套函数 tools py def cpu count def get cpu quota return int load sys fs cgroup cpu cpu cfs quota us def get cpu
  • 实现一个java UDF并从pyspark调用它

    我需要创建一个在 pyspark python 中使用的 UDF 它使用 java 对象进行内部计算 如果它是一个简单的 python 我会做类似的事情 def f x return 7 fudf pyspark sql functions
  • Python 中的类位于不同的文件中吗?

    与 Java 或 php 非常相似 我习惯将类与文件分开 Python 中也是同样的情况吗 另外 我应该如何命名该文件 像classname py一样小写还是像ClassName py一样 如果我想从此类创建一个对象 我是否需要做一些特殊的
  • 如何加载 caffe 模型并转换为 numpy 数组?

    我有一个 caffemodel 文件 其中包含 ethereon 的 caffe tensorflow 转换实用程序不支持的层 我想生成我的咖啡模型的 numpy 表示 我的问题是 如何将 caffemodel 文件 我还有 prototx
  • 如何使用Python优化大型数据集的API调用?

    客观的 将地址列表发送到 API 并提取某些信息 例如 指示地址是否位于洪水区域的标志 Solution 适用于小数据的 Python 脚本 Problem 我想针对大输入优化当前的解决方案 如何提高 API 调用的性能 如果我有 100
  • 将数据导入 Django 的好方法

    我想定期将数据导入 Django 项目 我需要告诉我的数据提供者我想要以什么格式接收数据 我应该以 Json XML CSV 格式请求吗 在 Django 中通常如何处理这个问题 Django 有一个用于导入数据的完整框架 称为 Fixtu
  • 错误:线条魔术函数

    我正在尝试使用 python 读取文件 但不断收到此错误 ERROR Line magic function user vars not found 我的代码非常基本 names read csv Combined data csv nam
  • 导入后属性未添加到模块中

    我做了以下实验室 vagrant ubuntu xenial test tree pack1 init py mod1 py pack2 init py mod2 py mod3 py test py 2 directories 6 fil
  • Python:计算非整数的阶乘

    我想知道是否有一种快速的 Pythonic 的方法来计算非整数的阶乘 例如 3 4 当然 内置的factorial 函数在Math模块可用 但它仅适用于积分 我不关心这里的负数 你想用math gamma x http docs pytho
  • 连接字符串:两个字符串列表的“乘法”[重复]

    这个问题在这里已经有答案了 对于字符串列表 将乘法运算定义为连接 l1 aa bb cc l2 11 22 l3 l1 op l2 预期输出 l3 aa11 aa22 bb11 bb22 cc11 cc22 我们可以简单地使用 for l
  • pytest - ModuleNotFoundError - python 3.6.4

    我有一个具有以下布局的项目 MANIFEST in README md init py company init py api init py auth py debug py exceptions py reporting py rest
  • 字典条目被覆盖? [复制]

    这个问题在这里已经有答案了 我发现一些输入没有存储在 Python 3 的字典中 运行这段代码 N int input How many lines of subsequent input graph for n in range N st
  • Python TDD 目录结构

    Python 中是否有用于 TDD 的特定目录结构 教程讨论测试的内容 但不讨论测试的位置 通过研究 Python Koans 怀疑它是这样的 project main program py This has main method sta

随机推荐

  • REMOTE_ADDR 为空,不包含在 SERVER 数组中

    搬到新服务器后我遇到了一个奇怪的问题 用于获取邮件的 cron 会检查授权 IP 其中之一默认为 127 0 0 1 移动后它停止工作 因为 REMOTE ADDR 变量未填充 它是从浏览器调用时调用的 但不是从 cron 内部运行或使用
  • 正确关闭 WebSocket(HTML5、Javascript)

    我正在研究 HTML5 WebSockets 我想知道如何优雅地关闭连接 例如 如果用户刷新页面或只是关闭浏览器会发生什么 当用户只是刷新页面而不调用时 会出现奇怪的行为websocket close 当他们在刷新后返回时 它会击中webs
  • 如何找到图像中包含的图像?

    我目前正在构建基本上相当于搜索引擎和网络漫画画廊之间的交叉点 其重点是引用来源和给予作者信用 我正在尝试找出一种方法来搜索图像以查找其中的字符 例如 假设我将红色字符和绿色字符保存为红人和绿人 如何确定图像是否包含其中之一 这不需要 100
  • 实体框架:按属性值过滤嵌套集合

    我有如下模型 class MyClass public int Id get set public List
  • 为什么项目中心对齐不起作用?

    这是我尝试创建图像网格的 HTML 代码 来源 https www w3schools com howto howto css image grid responsive asp 我想设置屏幕的图像显示中心 但align items或ali
  • 如何更改 Lollipop 之前版本和 Lollipop 版本的工具栏菜单项文本颜色

    我在应用程序中使用工具栏来进行材料设计 一切工作正常 但除了更改菜单项文本颜色时 我完全坚持该解决方案 我还发布了应拍摄的文本的屏幕截图以及我在应用程序中使用的代码 以供您参考 我尝试了几种替代方法 例如分配如下
  • Python Pandas:在 DataFrame 中查找模式

    我有以下数据框 120 万行 df test 2 pd DataFrame A end beginn end end beginn beginn end end end beginn end B 1 10 50 60 70 80 90 10
  • HTML5 视频什么时候应该回退到 Flash 播放器?

    我正在致力于为 HTML5 视频播放器实现后备机制 我有办法用 swfobject Flash 播放器替换它 但我应该如何检测是否出现任何问题 换句话说 如果我们使用以下可以抛出的错误事件列表 哪一个应该触发 Flash 播放器替换 或者如
  • 如何获取有关错误 500 - 内部服务器错误的更多信息?

    I use ajax我的 PHP 网站的许多部分的请求一切都运行良好 直到几天前我的所有 ajax请求开始给予error 500 internal server error 我可以在控制台中看到该错误 并且我还使用错误处理程序来获取有关该错
  • 使用 RDP 的 C# 远程桌面应用程序。如何生成证书?

    我在使用 MSTSCLib 从一台 PC 连接到另一台 PC 时遇到一些问题 它可以与服务器一起使用 但不能与普通工作站一起使用 private void btn connect Click object sender EventArgs
  • Python 中的语音识别

    我目前正在使用 Python 3 3 开发一个虚拟助手程序 我想在其中加入语音识别功能 有谁知道有什么 python 模块或工具可以用来做到这一点吗 任何帮助将不胜感激 我花了很多时间研究这个主题 目前我正在开发一个Python 3开源跨平
  • 自定义扩展方法来简化 LINQ to SQL 语句

    我有一段 LINQ 代码片段 需要在很多查询中使用 let catchmentId Convert ToInt32 phy PhysicalProperty binData Substring offset 3 1 phy Physical
  • 静默打印嵌入的 PDF

    我有一个网页 上面嵌入了 PDF 我的代码如下所示 我有这个 javascript 代码用于打印我的 PDF function printDocument documentId Wait until PDF is ready to prin
  • docusign 中的 apiClient.RequestJWTUserToken 不起作用

    我正在使用 DocuSign C SDK 创建一个 JWT 令牌 以使用集成器密钥模拟用户 但它会引发错误 Error while requesting server received a non successful HTTP code
  • ClassNotFoundException - 无法实例化 BroadcastReceiver

    我有一个Broadcastreceiver它检查CONNECTIVITY CHANGE有时它会崩溃并显示消息 04 05 18 23 47 080 5561 5561 tenkol design com imbrecords E Andro
  • C++中迷宫的DFS最短路径

    我无法弄清楚如何准确地使其发挥作用 我正在尝试使用 DFS 获得到达目标的最短路径 我知道 BFS 更好 但有人要求我使用 DFS 正如您所看到的 我尝试对导致最终的所有堆栈进行比较以找到目标 但它不起作用 只有导致目标的第一个堆栈被打印
  • exit() 在应该返回引用的函数内调用

    在库中 我有一个函数可以在数据库中搜索键并返回对对象的非常量引用 我想处理找不到密钥的情况 这通常是由调用函数时的错误引起的 这种情况太糟糕了 程序无法继续 所以我打印一条消息来帮助发现错误并调用exit 1 问题在于 return 语句
  • 在 Java 中执行 MySQL 删除语句时遇到问题

    我试图运行此代码并删除 MySQL 数据库中的某个记录 但出现此错误 SQLException Can not issue data manipulation statements with executeQuery SQLState S1
  • 我可以在单个连接上创建支持多个数据库事务吗?

    我创建了一个 HyperSQL 数据库 我只是想知道是否可以在单个连接上运行多个事务 由于与此相关的开销 我不想为每个事务生成一个新连接 查看一些类似的问题 建议似乎是创建一个数据库连接池 然后阻止等待一个可用 这是一个可行的解决方案 但不
  • 如何在 Yosemite 上设置 lxml 和 pypy?

    我想学习一些 lxml 和 pypy 所以我决定在我的 Yosemite Mac 上安装它 但经过三天的尝试 我仍然无法尝试 lxml 因为我无法正确设置 这是我所做的 做了一次干净的homebrew and xcode select in