Python脚本中没有名为thrift的模块

时间:2014-11-11 15:04:51

标签: python homebrew thrift

我已经使用Homebrew在我的Mac上安装了Thrift:brew install thrift --with-python

这做了一些工作,并完成了w / o错误报告。我在我的道路上节俭。

我从教程中编写了一个简单的python客户端:( gen-py中有一些python thrift代码)

#!/usr/bin/python

import sys
sys.path.append("./gen-py")

from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol

# rest of program...

运行时出现此错误:

Traceback (most recent call last):
  File "./hey.py", line 8, in <module>
    from thrift import Thrift
ImportError: No module named thrift

我使用Homebrew正确安装了python吗?有没有办法可以验证python / thrift集成是否正确安装?

4 个答案:

答案 0 :(得分:4)

原来(撰写本文时的当前版本)Thrift安装的Homebrew配方并未完全安装python的所有内容,特别是库。 (它确实成功安装了thrift命令行工具。)

我通过下载python发行版并在我的Mac上构建它来解决这个问题 - 但是因为我已经完成了brew安装,所以没有安装。我只想要python库。

我在这里遵循了建议:http://thrift-tutorial.readthedocs.org/en/latest/usage-example.html 我按照描述运行了“sudo python setup.py install”,这正确地(显然)安装了所需的库,然后就可以了。

答案 1 :(得分:1)

我也在macOS Mojave 10.14.1上遇到了这个问题。似乎原因是--with-python将在其中安装python@2thrift模块。但是,您使用的系统pythonpython@2不同。您可以通过brew list | grep python进行验证,并且应该看到以下结果。

python
python@2

在删除python@2brew uninstall --ignore-dependencies python@2)并从源代码安装python模块之后,应该可以使用。

git clone https://github.com/apache/thrift.git
cd thrift/lib/py
sudo python setup.py install

有关原因的更多详细信息,请参阅this post

答案 2 :(得分:0)

删除 if q_col_list == '*': cursor_query = sql.SQL("""SELECT * from {q_tab_name} WHERE {q_where_col} LIKE {q_wherel_str}""").format( q_tab_name=sql.Identifier(q_tab_name), q_where_col=sql.Identifier(q_where_col), q_wherel_str=sql.Literal(q_wherel_str), ) else: cursor_query = sql.SQL("""SELECT {q_col_list} from {q_tab_name} WHERE {q_where_col} LIKE {q_wherel_str}""").format( q_col_list = sql.Identifier(q_col_list), q_tab_name = sql.Identifier(q_tab_name), q_where_col = sql.Identifier(q_where_col), q_wherel_str = sql.Literal(q_wherel_str), ) cursor.execute(cursor_query) python@2对我不起作用。实际上,我必须重新安装(brew uninstall --ignore-dependencies python@2)

brew install python@2为我工作。

我的系统是OSX Mojave和python 2.7。 pip install thrift得到以下结果: brew list | grep python

答案 3 :(得分:0)

我没有使用Mac / Homebrew,但是这是我解决此问题的方法:

我正在使用Linux,并且我的Thrift服务器在PyCharm中运行良好,但是从命令行运行时出现 ModuleNotFoundError:没有名为“ thrift”的模块错误。

事实证明,尽管我在系统上安装了Thrift,但并未使用Pip进行安装。我跑完之后:

点安装节俭

...一切正常。