导入pyquery适用于IDLE解释器,但不适用于脚本

时间:2016-12-28 01:08:27

标签: python

我正在尝试在我的脚本中使用pyquery,但是当pyquery尝试从lxml导入etree时,我遇到了问题。但是,当我在IDLE解释器本身上导入pyquery时,不会发生此问题。所以,如果我把

import pyquery
进入IDLE解释器,它的工作原理,没问题。但是,如果我把

import makepath
import pyquery

到一个名为PyQueryTest.py的脚本中,它在终端中给出

Traceback (most recent call last):
  File "/Applications/Python 3.5/PythonPrograms/PyQueryTest.py", line 4, in <module>
    import pyquery
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pyquery/__init__.py", line 11, in <module>
from .pyquery import PyQuery
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pyquery/pyquery.py", line 9, in <module>
    from lxml import etree
ImportError: cannot import name etree

这里,makepath.py是一个脚本,它将预装的Python包的位置附加到sys.path,如下所示:

import sys
sys.path.append('/Library/Frameworks/Python.framework/Versions/' + \
                '3.5/lib/python3.5/site-packages')

我正在使用Mac并安装了Python 3.5,因此我以前遇到过问题,因为我的程序运行在与预安装的Python软件包不同的目录中。但是,在我的所有脚本中,自从将makepath.py放入我的程序文件夹并将其导入程序后,我已经运行了,修复路径似乎有效。

但是,这里显然存在一些我看不到的问题。导入在解释器中工作正常,但在脚本中失败。如果有人能指出我的解决方案,我将非常感激。谢谢。

- 编辑:为了澄清,如果我在IDLE解释器中导入lxml,然后调用lxml.etree,我得到

<module 'lxml.etree' from '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/lxml/etree.cpython-35m-darwin.so'>

这就是我认为etree所在的位置,这就是为什么我对它无法正确导入的原因感到困惑。

0 个答案:

没有答案