common-workflow-language / workflow-service

Implementation of the GA4GH Workflow Execution Service, a REST service for running workflows
Apache License 2.0
36 stars 21 forks source link

ImportError: cannot import name 'FileStorage' #85

Open golharam opened 4 years ago

golharam commented 4 years ago

Following the docs shown on https://pypi.org/project/wes-service/, I just installed via 'pip install wes-service' into a python 3.6 virtual env. When I run 'wes-server' I get the error:

$ wes-server
Traceback (most recent call last):
  File "/Users/golharr/workspace/ga4gh/wes-env/bin/wes-server", line 7, in <module>
    from wes_service.wes_service_main import main
  File "/Users/golharr/workspace/ga4gh/wes-env/lib/python3.6/site-packages/wes_service/wes_service_main.py", line 8, in <module>
    import connexion
  File "/Users/golharr/workspace/ga4gh/wes-env/lib/python3.6/site-packages/connexion/__init__.py", line 3, in <module>
    from .apis import AbstractAPI  # NOQA
  File "/Users/golharr/workspace/ga4gh/wes-env/lib/python3.6/site-packages/connexion/apis/__init__.py", line 1, in <module>
    from .abstract import AbstractAPI  # NOQA
  File "/Users/golharr/workspace/ga4gh/wes-env/lib/python3.6/site-packages/connexion/apis/abstract.py", line 14, in <module>
    from ..operation import Operation
  File "/Users/golharr/workspace/ga4gh/wes-env/lib/python3.6/site-packages/connexion/operation.py", line 7, in <module>
    from .decorators import validation
  File "/Users/golharr/workspace/ga4gh/wes-env/lib/python3.6/site-packages/connexion/decorators/validation.py", line 9, in <module>
    from werkzeug import FileStorage
ImportError: cannot import name 'FileStorage'
golharam commented 4 years ago

Happens in both Python 2.7 and Python 2.6 on Mac.

golharam commented 4 years ago

I have, for python 2.7: connexion==1.4.2 Werkzeug==1.0.1

For Python 3.6: connexion==1.4.2 Werkzeug==1.0.1

Referencing due to similar issue https://github.com/zalando/connexion/issues/1149

golharam commented 4 years ago

Looks like FileStorage in werkzeug moved to from werkzeug.datastructures import FileStorage

This break connexion. But connexion 1.4.2 is very old.

golharam commented 4 years ago

setup.py requires specific version of connexion. This should probably get updated.

tetron commented 4 years ago

Yea, the short term fix would be to pin the version. If you are thinking about using this project somebody could probably bring it back up to speed.

golharam commented 4 years ago

I was hoping to test this out as a reference implementation. If this is not a reference implementation, what can I use this is easily to setup and test with? If this is a reference implementation, I'd be happy to help bring up to speed, but if its not used, then there is no point...

mr-c commented 3 years ago

This is the main implementation of WES for CWL based-runners, yes