我正在尝试运行 thrift tutorial对于 python 。但是当我尝试运行 PythonServer.py
时,出现以下错误:
Traceback (most recent call last):
File "./PythonServer.py", line 24, in <module>
sys.path.insert(0, glob.glob('../../lib/py/build/lib*')[0])
IndexError: list index out of range
我该如何解决这个问题?
最佳答案
每个基于 Thrift 的应用程序通常由三个部分组成,这三个部分都是构成一个正常运行的整体所必需的:
- 从 IDL 文件生成的代码(通过 Thrift 编译器)
- 适用于您的特定目标语言的 Thrift 运行时库
- 您编写的用于实现服务器和/或客户端逻辑的代码
无论您是否解压 runtime package来自download section网站的,或克隆 Thrift from source ,您总是会得到类似于此的文件夹结构1):
/
|- lib
| |- cpp
| |- java
| |- py
| +- ... more languages ...
|
+- tutorial
|- cpp
|- java
|- py
+- ... more languages ...
文件夹lib
和tutorial
都包含每种语言的子目录。这就是为什么本教程引用了应该容纳 Python Thrift 运行时文件的相对路径的原因。
因此,您要么想要复制相同的文件夹结构(例如,直接使用包中的教程代码),要么更改目录引用以指向 Python Thrift 运行时文件实际所在的文件夹。
1) 实际上,您会得到更多的文件夹,但这些文件夹在这里并不重要,因此我们只是忽略它们。
关于python - 运行 thrift 示例时出现 "IndexError: list index out of range"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33871659/