neo4j

2011-06-17 16 views
8

में ऑब्जेक्ट बनाने के साथ समस्या मैं neo4j के लिए django एकीकरण का उपयोग कर रहा हूं और जब मैं नोड बनाने की कोशिश कर रहा हूं तो मुझे निम्न ट्रेसबैक मिल रहा है।
मेरे पास जेपी टाइप स्थापित है और इसे आयात किया जा सकता है।neo4j

p = Person.objects.create(first_name='omer', last_name='katz') 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 138, in create 
    return self.get_query_set().create(**kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/model/django_model/__init__.py", line 362, in create 
    obj.save(force_insert=True) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 460, in save 
    self.save_base(using=using, force_insert=force_insert, force_update=force_update) 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_util.py", line 47, in __get__ 
    method, graphdb = self.descr_get(obj, cls) 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_util.py", line 41, in descr_get 
    graphdb = self.accessor.__get__(obj, cls) 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/model/django_model/__init__.py", line 58, in __get__ 
    return DjangoNeo.neo 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/model/django_model/__init__.py", line 124, in neo 
    return self.__setup_neo() 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/model/django_model/__init__.py", line 136, in __setup_neo 
    self.__neo = NeoService(resource_uri, **options) 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/__init__.py", line 522, in __new__ 
    neo = core.load_neo(resource_uri, params) 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_core.py", line 180, in load_neo 
    backend.initialize(**parameters) 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/__init__.py", line 61, in initialize 
    raise ImportError("No applicable backend found.") 
ImportError: No applicable backend found. 

संपादित करें:
के रूप में यहाँ का अनुरोध किया मेरी neo4j सेटिंग्स हैं:

NEO4J_RESOURCE_URI = '/var/neo4j/neo4django' 
# NEO4J_RESOURCE_URI should be the path to where 
# you want to store the Neo4j database. 

NEO4J_OPTIONS = { 
    # this is optional and can be used to specify 
    # extra startup parameters for Neo4j, such as 
    # the classpath to load Neo4j from. 
} 

संपादित करें:

:
thobe के सुझाव मैं निम्नलिखित मिल निम्नलिखित जब मैं अपने स्वयं के मॉडल आयात करने का प्रयास करने के बाद
ERROR:root:Importing native backends failed. 
    Traceback (most recent call last): 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/__init__.py", line 51, in initialize 
     embedded, remote = implementation.initialize(classpath, params) 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/reflection.py", line 44, in initialize 
     jvm = jpype.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_core.py", line 96, in getDefaultJVMPath 
     return _linux.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 36, in getDefaultJVMPath 
     jvm = _getJVMFromJavaHome() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 55, in _getJVMFromJavaHome 
     if os.path.exists(java_home+"/bin/javac") : 
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 
    ERROR:root:Importing native backends failed. 
    Traceback (most recent call last): 
     FERROR:root:Importing native backends failed. 
    Traceback (most recent call last): 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/__init__.py", line 51, in initialize 
     embedded, remote = implementation.initialize(classpath, params) 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/reflection.py", line 44, in initialize 
     jvm = jpype.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_core.py", line 96, in getDefaultJVMPath 
     return _linux.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 36, in getDefaultJVMPath 
     jvm = _getJVMFromJavaHome() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 55, in _getJVMFromJavaHome 
     if os.path.exists(java_home+"/bin/javac") : 
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 
    ERROR:root:Importing native backends failed. 
    Traceback (most recent call last): 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/__init__.py", line 51, in initialize 
     embedded, remote = implementation.initialize(classpath, params) 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/reflection.py", line 44, in initialize 
     jvm = jpype.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_core.py", line 96, in getDefaultJVMPath 
     return _linux.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 36, in getDefaultJVMPath 
     jvm = _getJVMFromJavaHome() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 55, in _getJVMFromJavaHome 
     if os.path.exists(java_home+"/bin/javac") : 
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 
    ERROR:root:Importing native backends failed. 
    Traceback (most recent call last): 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/__init__.py", line 51, in initialize 
     embedded, remote = implementation.initialize(classpath, params) 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/reflection.py", line 44, in initialize 
     jvm = jpype.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_core.py", line 96, in getDefaultJVMPath 
     return _linux.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 36, in getDefaultJVMPath 
     jvm = _getJVMFromJavaHome() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 55, in _getJVMFromJavaHome 
     if os.path.exists(java_home+"/bin/javac") : 
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 
    ERROR:root:Importing native backends failed. 
    Traceback (most recent call last): 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/__init__.py", line 51, in initialize 
     embedded, remote = implementation.initialize(classpath, params) 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/reflection.py", line 44, in initialize 
     jvm = jpype.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_core.py", line 96, in getDefaultJVMPath 
     return _linux.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 36, in getDefaultJVMPath 
     jvm = _getJVMFromJavaHome() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 55, in _getJVMFromJavaHome 
     if os.path.exists(java_home+"/bin/javac") : 
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 
    ERROR:root:Importing native backends failed. 
    Traceback (most recent call last): 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/__init__.py", line 51, in initialize 
     embedded, remote = implementation.initialize(classpath, params) 
     File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/reflection.py", line 44, in initialize 
     jvm = jpype.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_core.py", line 96, in getDefaultJVMPath 
     return _linux.getDefaultJVMPath() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 36, in getDefaultJVMPath 
     jvm = _getJVMFromJavaHome() 
     File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 55, in _getJVMFromJavaHome 
     if os.path.exists(java_home+"/bin/javac") : 
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 

ile "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/__init__.py", line 51, in initialize 
    embedded, remote = implementation.initialize(classpath, params) 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/reflection.py", line 44, in initialize 
    jvm = jpype.getDefaultJVMPath() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_core.py", line 96, in getDefaultJVMPath 
    return _linux.getDefaultJVMPath() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 36, in getDefaultJVMPath 
    jvm = _getJVMFromJavaHome() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 55, in _getJVMFromJavaHome 
    if os.path.exists(java_home+"/bin/javac") : 
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 
ERROR:root:Importing native backends failed. 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/__init__.py", line 51, in initialize 
    embedded, remote = implementation.initialize(classpath, params) 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/reflection.py", line 44, in initialize 
    jvm = jpype.getDefaultJVMPath() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_core.py", line 96, in getDefaultJVMPath 
    return _linux.getDefaultJVMPath() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 36, in getDefaultJVMPath 
    jvm = _getJVMFromJavaHome() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 55, in _getJVMFromJavaHome 
    if os.path.exists(java_home+"/bin/javac") : 
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 
ERROR:root:Importing native backends failed. 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/__init__.py", line 51, in initialize 
    embedded, remote = implementation.initialize(classpath, params) 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/reflection.py", line 44, in initialize 
    jvm = jpype.getDefaultJVMPath() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_core.py", line 96, in getDefaultJVMPath 
    return _linux.getDefaultJVMPath() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 36, in getDefaultJVMPath 
    jvm = _getJVMFromJavaHome() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 55, in _getJVMFromJavaHome 
    if os.path.exists(java_home+"/bin/javac") : 
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 
ERROR:root:Importing native backends failed. 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/__init__.py", line 51, in initialize 
    embedded, remote = implementation.initialize(classpath, params) 
    File "/usr/local/lib/python2.7/dist-packages/Neo4j.py-0.1_SNAPSHOT-py2.7.egg/neo4j/_backend/reflection.py", line 44, in initialize 
    jvm = jpype.getDefaultJVMPath() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_core.py", line 96, in getDefaultJVMPath 
    return _linux.getDefaultJVMPath() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 36, in getDefaultJVMPath 
    jvm = _getJVMFromJavaHome() 
    File "/usr/local/lib/python2.7/dist-packages/jpype/_linux.py", line 55, in _getJVMFromJavaHome 
    if os.path.exists(java_home+"/bin/javac") : 
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 
+0

क्या आप अपने doango सेटिंग्स.py में अपने neo4j कॉन्फ़िगरेशन प्रदान कर सकते हैं? –

+0

@FelipeCruz: हाँ, मैं इसे आज करूँगा –

+0

@ FelipeCruz: देरी के लिए खेद है। क्या आप मुझे बता सकते हैं कि यहां क्या गलत हो सकता है? –

उत्तर

1

आपकी सेटिंग्स.py ठीक दिखती है ..

क्या आपके पास जावा एसडीके स्थापित है और JAVA_HOME पर्यावरण चर आपके जेडीके पर सेट है? (जावा JRE पर्याप्त नहीं है)

Neo4j.py डॉक्स से:

In some situations the JPype compilation process might not link with the appropriate JNI headers, resulting in compilation errors. The first thing to note is that JPype needs the JNI headers from a JDK in order to build, it is not enough to only have a JRE installed when building JPype. If the JAVA_HOME environment variable is not set when building JPype the build script (setup.py) of JPype might have problems locating the appropriate JNI headers. If you are building JPype with sudo python setup.py install you might not inherit the JAVA_HOME environment variable into the sudo environment, an easy warkaround is to run python setup.py bdist before install.

+0

को निष्पादित करने वाले उपयोगकर्ता को पहुंच योग्य नहीं है (या कॉन्फ़िगर किया गया है) मेरा JAVA_HOME सही ढंग से सेट किया गया था। –

+0

आपका neo4j उदाहरण चल रहा है? '$ bin/neo4j start'? –

+0

@FelipeCruz: nope :) –

2

आप NEO4J_OPTIONS को यह जोड़कर क्यों बैकएंड नहीं पाया जा सका के बारे में अधिक जानकारी प्राप्त कर सकते वर्बोज़:

NEO4J_OPTIONS = { 
    log: True, 
} 

उस लॉगिंग से आउटपुट वास्तविक समस्या का निदान करना और एक फिक्स का सुझाव देना आसान बनाता है।

1

मैं एक ही समस्या में भाग गया। कोई फर्क नहीं पड़ता कि मैंने क्या किया (डेबियन पर) पायथन को JAVA_HOME पर्यावरणीय चर नहीं मिला। इसे ठीक करने के लिए सबसे आसान तरीका है, जो मैं तुम सिर्फ Django में यह कहीं भी जोड़ सकते हैं अनुमान, इन पंक्तियों को जोड़ने के लिए है -

java_home = os.getenv("JAVA_HOME") 
if(java_home == None): 
    os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-6-openjdk" 

जहां पथ JDK आप उपयोग करना चाहते का स्थान है (यह फ़ोल्डर होना चाहिए/इसके बाद जावा और जावा कार्यक्रमों के साथ बिन)

मैंने जो भी कोशिश की वह /etc/bash.bashrc में स्थान जोड़ना था। जो मेरे लिए काम नहीं करता लेकिन आपके लिए हो सकता है।

JAVA_HOME=/usr/lib/jvm/java-6-openjdk 
export JAVA_HOME 
PATH=$PATH:$JAVA_HOME/bin 
export PATH 

वैसे भी, आपको सही दिशा में शुरू करना चाहिए। लेकिन अब मेरे पास एक और संबंधित समस्या है, मैं अब एक हफ्ते के लिए कोई जवाब नहीं दे रहा हूं :(

संबंधित मुद्दे