2012-02-28 76 views
1

所以我在ArchLinux上安装了neo4j(AUR Link)并且想用python 3.2测试它。 我使用python 3.2,Eclipse与Pydev。在Eclipse中运行neo4j-Python代码,使用ArchLinux下的Pydev

我试过下面的代码从neo4j网站,allthough我认为它仍然是2.7 python代码,我试图将其转换为Python 3.2代码。

下面的代码:

import os 
libpath = '/usr/share/java/neo4j' 
os.environ['CLASSPATH'] = ';'.join([ os.path.abspath(p) for p in 
os.listdir(libpath)]) 

from neo4j import GraphDatabase 

# Create a database 
db = GraphDatabase('/home/USERNAME/.db/neo4j/HelloWorld') 

# All write operations happen in a transaction 
with db.transaction: 
    firstNode = db.node(name='Hello') 
    secondNode = db.node(name='world!') 

    # Create a relationship with type 'knows' 
    relationship = firstNode.knows(secondNode, name='graphy') 

# Read operations can happen anywhere 
message = ' '.join([firstNode['name'], relationship['name'], secondNode['name']]) 

print(message) 

# Delete the data 
with db.transaction: 
    firstNode.knows.single.delete() 
    firstNode.delete() 
    secondNode.delete() 

# Always shut down your database when your application exits 
db.shutdown() 

,但我得到以下错误消息:

Traceback (most recent call last): 
    File "/home/USERNAME/PATH/TO/src/neo4j-HelloWorld.py", line 12, in <module> 
    from neo4j import GraphDatabase 
    File "/usr/lib/python3.2/site-packages/neo4j_embedded-1.6-py3.2.egg/neo4j/__init__.py", line 29, in <module> 
    from neo4j.core import GraphDatabase, Direction, NotFoundException, BOTH, ANY, INCOMING, OUTGOING 
    File "/usr/lib/python3.2/site-packages/neo4j_embedded-1.6-py3.2.egg/neo4j/core.py", line 19, in <module> 
    from _backend import * 
ImportError: No module named _backend 

我只是无法弄清楚什么是错的! 我试图按here所述设置CLASSPATH,但它不会改变任何内容。

我真的很感激任何帮助!

回答

3

您是否通过2to3运行了代码?

如果不是,我建议你这样做。

我认为问题在于3.x中的相对导入语法已更改,有关详细信息,请参阅PEP328

例如在core.py应该大概from ._backend import *

+0

似乎是这样的正确答案...不是? – 2012-02-29 16:20:09

+0

虽然没有为我工作:core.py 2to3翻译时没有得到它的引用编辑,以适应._backend导入* – chiffa 2013-12-17 21:51:13