brightway-lca / brightway-live

🖥️🌿 Browser-based JupyterHub for Brightway (built on WASM, either based on emscripten-forge or on Pyodide)
https://live.brightway.dev
BSD 3-Clause "New" or "Revised" License
1 stars 1 forks source link

List all Brightway Dependencies #2

Closed michaelweinold closed 1 year ago

michaelweinold commented 1 year ago

Adding new packages to a Pyodide kernel involves:

(JupyterLite) "Use additional Python packages" (Pyodide) "Loading packages"

For instance,

%pip install -q bw2io

throws the error

ValueError: Can't find a pure Python 3 wheel for 'psutil'.
See: https://pyodide.org/en/stable/usage/faq.html#micropip-can-t-find-a-pure-python-wheel
You can use `micropip.install(..., keep_going=True)`to get a list of all packages with missing wheels.

This was briefly discussed in 2022 with the Pyodide team in https://github.com/pyodide/pyodide/issues/3056:

psutil won't be very useful on Pyodide. Emscripten platform does not support any process, resource, signals, or similar POSIX APIs. Browsers are also sandboxed. You won't be able to see or modify any processes on the host system.

A complete list of all dependencies of the Brightway ecosystem must therefore be compiled.

Tasks

michaelweinold commented 1 year ago
package required by pure 🐍? included in pyodide? included in emforge? comment
lxml bw2io, ... no yes no follow-up
numpy all no yes yes
openpyxl bw2io yes N/A N/A
psutil all no no no follow-up
pyprind bw2io, ... yes N/A N/A
requests bw2io yes N/A N/A
scipy all no yes yes
tqdm all yes yes no
unidecode bw2io yes N/A N/A
voluptuous bw2io, ... yes N/A N/A
xlrd bw2io yes yes no
xlsxwriter bw2io no no no follow-up
peewee bw2data no no no follow-up
woosh bw2data yes N/A N/A
wrapt bw2data yes yes N/A
fasteners bw2data yes N/A N/A follow-up
docopt bw2data no no no follow-up
appdirs bw2data yes N/A N/A package deprecated
fs bw_processing yes N/A N/A
matplotlib bw_analyzer no yes yes
tabulate bw_analyzer yes N/A N/A