3

尝试从 serpscrap 包运行示例 .py 时出现错误。

我在 Pythonista 的 iPhoneX 上。

任何帮助将不胜感激。

这是回溯

Traceback (most recent call last):
  File "/private/var/mobile/Containers/Shared/AppGroup/C27C5B11-1804-47B9-AF18-7287A8337C55/Pythonista3/Documents/testing/serpscrapetest.py", line 3, in <module>
    import serpscrap
  File "/private/var/mobile/Containers/Shared/AppGroup/C27C5B11-1804-47B9-AF18-7287A8337C55/Pythonista3/Documents/site-packages-3/serpscrap/__init__.py", line 5, in <module>
    from serpscrap.serpscrap import SerpScrap
  File "/private/var/mobile/Containers/Shared/AppGroup/C27C5B11-1804-47B9-AF18-7287A8337C55/Pythonista3/Documents/site-packages-3/serpscrap/serpscrap.py", line 11, in <module>
    from scrapcore.core import Core
  File "/private/var/mobile/Containers/Shared/AppGroup/C27C5B11-1804-47B9-AF18-7287A8337C55/Pythonista3/Documents/site-packages-3/scrapcore/core.py", line 8, in <module>
    from scrapcore.cachemanager import CacheManager
  File "/private/var/mobile/Containers/Shared/AppGroup/C27C5B11-1804-47B9-AF18-7287A8337C55/Pythonista3/Documents/site-packages-3/scrapcore/cachemanager.py", line 11, in <module>
    from scrapcore.parsing import Parsing
  File "/private/var/mobile/Containers/Shared/AppGroup/C27C5B11-1804-47B9-AF18-7287A8337C55/Pythonista3/Documents/site-packages-3/scrapcore/parsing.py", line 6, in <module>
    from scrapcore.parser.google_parser import GoogleParser
  File "/private/var/mobile/Containers/Shared/AppGroup/C27C5B11-1804-47B9-AF18-7287A8337C55/Pythonista3/Documents/site-packages-3/scrapcore/parser/google_parser.py", line 7, in <module>
    from scrapcore.parser.parser import Parser
  File "/private/var/mobile/Containers/Shared/AppGroup/C27C5B11-1804-47B9-AF18-7287A8337C55/Pythonista3/Documents/site-packages-3/scrapcore/parser/parser.py", line 7, in <module>
    import lxml.html
  File "/private/var/mobile/Containers/Shared/AppGroup/C27C5B11-1804-47B9-AF18-7287A8337C55/Pythonista3/Documents/site-packages-3/lxml/html/__init__.py", line 54, in <module>
    from .. import etree
ImportError: cannot import name 'etree'
4

2 回答 2

2

由于 lxml 依赖,SerpScrap 目前无法在 iOS 上运行。我将更新文档以澄清这一点。

但也许你看看https://github.com/pybee/Python-Apple-support。我对iOS不熟悉,也许有人可以检查这是否有助于解决这个问题。否则,请随时在 serpscrap github 页面上打开一个问题。

于 2018-08-25T07:51:03.057 回答
1

serpscrap显然需要lxml,尽管由于某种原因它只记录了 Windows 的要求,而不是所有平台。

您不能lxml在 Pythonista 中安装需要 C 扩展模块的包,例如 . 您似乎以某种方式获得了lxml安装的纯 Python 部分,1但如果没有 C 扩展模块,那将没有任何好处。

有一个未解决的问题#245可以lxml作为 Pythonista 的预安装包添加,这可能会解决您的问题。

因此,您的选择是:

  • 帮助 Pythonista 开始lxml构建,以便他们可以关闭该错误并添加lxml到下一个版本。
  • 修改serpscrap为没有工作lxml(如果它只是 using lxml.etree,它可能会与 stdlib ETree 实现一起工作)。
  • 提交功能请求serpscrap并希望其他人这样做。
  • 切换到不需要lxml.

1. 我不确定这是怎么发生的;安装应该会失败。但也许serpscrap会在 Linux 和 macOS 而不是 iOS 上发生一些奇怪的事情,这就是为什么它们lxml首先只列出对 Windows 的依赖?

于 2018-08-03T20:22:42.860 回答