DataBrewery / cubes

[NOT MAINTAINED] Light-weight Python OLAP framework for multi-dimensional data analysis
http://cubes.databrewery.org
Other
1.49k stars 313 forks source link

No module named slicer #487

Open Andrej730 opened 4 years ago

Andrej730 commented 4 years ago

I'm trying to run slicer serve slicer.ini and it results with the following error:

 * Serving Flask app "cubes.server" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Restarting with stat
\python\python37\python.exe: No module named slicer

I've investigated a bit and have found the part of the code that results in error:

[0]   \appdata\local\programs\python\python37\lib\runpy.py(193)_run_module_as_main()-> "__main__", mod_spec)
[1]   \appdata\local\programs\python\python37\lib\runpy.py(85)_run_code()-> exec(code, run_globals)
[2]   \appdata\local\programs\python\python37\scripts\slicer.exe\__main__.py(7)<module>()-> sys.exit(main())
[3]   \appdata\local\programs\python\python37\lib\site-packages\cubes\slicer\commands.py586)main()-> cli(*args, **kwargs)
[4]  \appdata\local\programs\python\python37\lib\site-packages\click\core.py(764)__call__()-> return self.main(*args, **kwargs)
[5]   \appdata\local\programs\python\python37\lib\site-packages\click\core.py(717)main()-> rv = self.invoke(ctx)
[6]  \appdata\local\programs\python\python37\lib\site-packages\click\core.py(1137)invoke()-> return _process_result(sub_ctx.command.invoke(sub_ctx))
[7]  \appdata\local\programs\python\python37\lib\site-packages\click\core.py(956)invoke()-> return ctx.invoke(self.callback, **ctx.params)
[8]  \appdata\local\programs\python\python37\lib\site-packages\click\core.py(555)invoke()-> return callback(*args, **kwargs)
[9]   \appdata\local\programs\python\python37\lib\site-packages\click\decorators.py(17)nw_func()-> return f(get_current_context(), *args, **kwargs)
[10]   \appdata\local\programs\python\python37\lib\site-packages\cubes\slicer\commands.p(65)serve()-> run_server(config, debug=ctx.obj.debug)
[11]   \appdata\local\programs\python\python37\lib\site-packages\cubes\server\base.py(10)run_server()-> use_reloader=use_reloader)
[12]   \appdata\local\programs\python\python37\lib\site-packages\flask\app.py(990)run()-> run_simple(host, port, self, **options)
[13]   \appdata\local\programs\python\python37\lib\site-packages\werkzeug\serving.py(100)run_simple()-> run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
[14]   \appdata\local\programs\python\python37\lib\site-packages\werkzeug\_reloader.py(33)run_with_reloader()-> sys.exit(reloader.restart_with_reloader())
[15] > \appdata\local\programs\python\python37\lib\site-packages\werkzeug\_reloader.py(17)restart_with_reloader()-> exit_code = subprocess.call(args, env=new_environ, close_fds=False)

The reason why it results with the error is because in the last line it's trying to run the command python -m slicer serve slicer.ini which results with the error:

>python -m slicer serve slicer.ini
AppData\Local\Programs\Python\Python37\python.exe: No module named slicer

How can I fix that?

Andrej730 commented 4 years ago

Figured it was werkzeug issue. Kind of similar to https://github.com/pallets/werkzeug/issues/1619 and fixed in https://github.com/pallets/werkzeug/commit/ab1b55600c314a615ccf36d709aade244cb118f5

Solution: upgrade werkzeug by : pip install werkzeug -U (actually any werkzeug version >= 0.15.6 will work) and hope it won't conflict with any other part of cubes library