所以我在 ArchLinux ( AUR Link ) 上安装了 neo4j 并想使用 python 3.2 测试它。 我正在使用 python 3.2,Eclipse 和 Pydev。
我尝试使用 neo4j 网站上的代码,尽管我认为它仍然是 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
我就是想不通怎么了! 我试图按照描述设置 CLASSPATH here ,但它不会改变任何东西。
如果有任何帮助,我将不胜感激!
最佳答案
您是否通过 2to3
运行代码?
如果没有,我建议你这样做。
我认为问题在于 3.x 中的相对导入语法发生了变化,请参阅 PEP328了解详情。
例如core.py
中有问题的导入应该可能说 from ._backend import *
关于linux - 在 ArchLinux 下使用 Pydev 在 Eclipse 中运行 neo4j-Python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9480518/