neo4j-contrib / neo4j_doc_manager

Doc manager for Neo4j
Apache License 2.0
99 stars 26 forks source link

AttributeError: 'Graph' object has no attribute 'cypher' #59

Closed geosmart closed 8 years ago

geosmart commented 8 years ago

I running neo4j_doc_manager with mongo-connector -m 192.168.1.188:27017 -t http://127.0.0.1:7474/db/uadb -d neo4j_doc_manager, and the error throw :

2016-03-23 17:50:35,161 [ERROR] mongo_connector.doc_managers.neo4j_doc_manager:70 - Bulk
2016-03-23 17:50:35,161 [ERROR] mongo_connector.doc_managers.neo4j_doc_manager:70 - Bulk
2016-03-23 17:50:35,161 [ERROR] mongo_connector.doc_managers.neo4j_doc_manager:70 - Bulk
2016-03-23 17:50:35,161 [ERROR] mongo_connector.doc_managers.neo4j_doc_manager:70 - Bulk
2016-03-23 18:00:58,046 [ERROR] mongo_connector.util:87 - Fatal Exception
Traceback (most recent call last):
  File "e:\pythonworkspace\venv\neo4j.venv\lib\site-packages\mongo_connector\util.py", line 85, in wrapped
    func(*args, **kwargs)
  File "e:\pythonworkspace\venv\neo4j.venv\lib\site-packages\mongo_connector\oplog_manager.py", line 268, in ru
    ns, timestamp)
  File "e:\pythonworkspace\venv\neo4j.venv\lib\site-packages\mongo_connector\doc_managers\neo4j_doc_manager.py", line 74, in update
    tx = self.graph.cypher.begin()
AttributeError: 'Graph' object has no attribute 'cypher'

any other lib I have to install?

johnymontana commented 8 years ago

It looks like the URL your are passing for Neo4j is incorrect. It should be http://127.0.0.1:7474/db/data

geosmart commented 8 years ago

@johnymontana Thank you, I changed the neo4j endpoint ,But the error still

(neo4j.venv) F:\Software\04 Efficient\ALTRun>mongo-connector -m 192.168.1.188:27017 -t http://127.0.0.1:7474/db/data -d neo4j_doc_manager
Logging to mongo-connector.log.
Exception in thread Thread-2:
Traceback (most recent call last):
  File "C:\Python27\Lib\threading.py", line 810, in __bootstrap_inner
    self.run()
  File "e:\pythonworkspace\venv\neo4j.venv\lib\site-packages\mongo_connector\util.py", line 85, in wrapped
    func(*args, **kwargs)
  File "e:\pythonworkspace\venv\neo4j.venv\lib\site-packages\mongo_connector\oplog_manager.py", line 244, in run
    entry['o']['_id'], ns, timestamp)
  File "e:\pythonworkspace\venv\neo4j.venv\lib\site-packages\mongo_connector\doc_managers\neo4j_doc_manager.py", line 88, in remove
    tx = self.graph.cypher.begin()
AttributeError: 'Graph' object has no attribute 'cypher'

My Versions

MongoDB :2.6.1
Neo4j :2.3.2
python :2.7.10 x86
geosmart commented 8 years ago

I reinstall neo4j_doc_manager without set --pre ,use the stable version rather than dev version.
install command:pip install neo4j-doc-manager
and now it's working fine!
thanks @johnymontana, It's just a version problem

johnymontana commented 8 years ago

Thanks @geosmart for posting this. I've updated the readme and docs to remove the --pre option for installation. This was an artifact from when there was not a stable / non-dev release in PyPI.

stevenpollack commented 8 years ago

Head's up, I had the same error as @geosmart, re-installed without the --pre option and now (thanks for py2neo v2, am experiencing the following error:

ImportError: cannot import name 'BindError'

Full traceback:

$ mongo-connector -m localhost:27017 -t http://localhost:7474/data/db -d neo4j_doc_manager
Fatal Exception
Traceback (most recent call last):
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/connector.py", line 803, in import_dm_by_name
    module = __import__(full_name, fromlist=(name,))
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/doc_managers/neo4j_doc_manager.py", line 14, in <module>
    from mongo_connector.doc_managers.error_handler import ErrorHandler
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/doc_managers/error_handler.py", line 4, in <module>
    from py2neo import GraphError as graph_error, BindError as bind_error
ImportError: cannot import name 'BindError'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/util.py", line 85, in wrapped
    func(*args, **kwargs)
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/connector.py", line 1041, in main
    conf.parse_args()
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/config.py", line 118, in parse_args
    option, dict((k, values.get(k)) for k in option.cli_names))
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/connector.py", line 824, in apply_doc_managers
    module = import_dm_by_name(dm['docManager'])
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/connector.py", line 814, in import_dm_by_name
    "vailable doc managers." % full_name)
mongo_connector.errors.InvalidConfiguration: Could not import mongo_connector.doc_managers.neo4j_doc_manager. It could be that this doc manager has been moved out of this project and is maintained elsewhere. Make sure that you have the doc manager installed alongside mongo-connector. Check the README for a list of available doc managers.
Traceback (most recent call last):
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/connector.py", line 803, in import_dm_by_name
    module = __import__(full_name, fromlist=(name,))
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/doc_managers/neo4j_doc_manager.py", line 14, in <module>
    from mongo_connector.doc_managers.error_handler import ErrorHandler
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/doc_managers/error_handler.py", line 4, in <module>
    from py2neo import GraphError as graph_error, BindError as bind_error
ImportError: cannot import name 'BindError'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/user/anaconda/envs/mongo_neo4j/bin/mongo-connector", line 11, in <module>
    sys.exit(main())
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/util.py", line 85, in wrapped
    func(*args, **kwargs)
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/connector.py", line 1041, in main
    conf.parse_args()
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/config.py", line 118, in parse_args
    option, dict((k, values.get(k)) for k in option.cli_names))
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/connector.py", line 824, in apply_doc_managers
    module = import_dm_by_name(dm['docManager'])
  File "/Users/user/anaconda/envs/mongo_neo4j/lib/python3.5/site-packages/mongo_connector/connector.py", line 814, in import_dm_by_name
    "vailable doc managers." % full_name)
mongo_connector.errors.InvalidConfiguration: Could not import mongo_connector.doc_managers.neo4j_doc_manager. It could be that this doc manager has been moved out of this project and is maintained elsewhere. Make sure that you have the doc manager installed alongside mongo-connector. Check the README for a list of available doc managers.

Also:

$ pip freeze
mongo-connector==2.3
neo4j-doc-manager==0.1.1
py2neo==3
pymongo==3.2.2
pysolr==3.4.0
requests==2.10.0
$ mongod --version
db version v3.2.6
git version: 05552b562c7a0b3143a729aaa0838e558dc49b25
OpenSSL version: OpenSSL 1.0.2h  3 May 2016
allocator: system
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64

and I'm using neo4j v3.0

Loubonnet commented 7 years ago

Hi @stevenpollack, I'm facing the same issue (ImportError: cannot import name 'BindError'). Did you finally find a way to fix this?

Thanks in advance