1

我在将函数应用于 Graphlab Create (python) 中的 SArray 对象中的值时遇到问题。文档中给出的示例甚至对我来说都失败了。

sa = SArray([1,2,3,4,5])
sa[sa.apply(lambda x: math.log(x) <= 1)]

返回以下内容:

RuntimeError: Runtime Exception: 0. Runtime Exception: 0. Traceback (most recent call last):
File "/usr/lib/python2.7/pickle.py", line 1382, in loads
return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 1090, in load_global
klass = self.find_class(module, name)
File "/usr/lib/python2.7/pickle.py", line 1124, in find_class
__import__(module)
File "/Library/Python/2.7/site-packages/graphlab/__init__.py", line 7, in <module>
import graphlab.connect.aws as aws
AttributeError: 'module' object has no attribute 'connect'
4

1 回答 1

2

这可能是由于机器上安装了多个 Python 造成的(__import__通过 pickle 似乎与常规 Python 导入的工作方式不同,并且可能会尝试从不同的路径加载模块)。

解决方法是在 virtualenv 中运行,并在virtualenv中安装 graphlab-create 的 pip。这应该将 Python 模块加载隔离到正确的 Python 安装和模块路径。

于 2014-08-11T17:17:16.403 回答