You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We currently deploy IoT Inspector on Windows by bundling the official binary of Python 3.8 and installing the required packages during the initial setup process. See this Windows shortcut file for details.
This process does not work for macOS, as there is no single standalone executable/binary for macOS.
I don't think (I might be wrong) we can use PyInstaller because of streamlit. As you go through the code, you'll see that the UI/UX for IoT Inspector is based on streamlit. To run Inspector, you'll have to put IoT Inspector's code as an argument to streamlit; see this line, i.e., effectively running python -m streamlit run Device_List.py. Although we can package streamlit with PyInstaller, PyInstaller can't deal with the dependencies for the IoT Inspector code (i.e., Device_List.py and others). I haven't found a way to launch IoT Inspector without first launching streamlit. In other words, it seems impossible to just do this: ./Device_List.py, where Device_List.py could somehow launch the streamlit server internally without needing to do python -m streamlit run Device_List.py.
If we can launch IoT Inspector with just ./Device_List.py or python Device_List.py, then the problem would be solved; we could simply process Device_List.py with PyInstaller, and PyInstaller will take care of the dependencies.
This is a critical issue. Until the above is solved, it's difficult to have a proper/easy macOS deployment.
The text was updated successfully, but these errors were encountered:
Technically, we could switch to Plotly Dash, as the Dash server could potentially be started from within IoT Inspector's code. I do not want to pursue this direction because (1) we would have to rewrite everything and (2) Plotly Dash, in my opinion, is more verbose and difficult to write, making it potentially difficult to attract new contributors. What I like about streamlit is its simplicity in the development process. We just have to figure out the deployment issue!
By default, macOS is not shipped with Python 3. We can't ask users to install Python 3 first, because macOS would have to download and install the developer tools first, which takes a long time.
If this technique works, we could ship the pyoxy binary, have it masquerade as Python (per this post), and just run python -m streamlit run Device_List.py -- if this works.
Related idea: Or just package the Python interpreter with PyInstaller? Would this work?
Or this idea: See this article on how to use PyInstaller to package streamlit apps.
We currently deploy IoT Inspector on Windows by bundling the official binary of Python 3.8 and installing the required packages during the initial setup process. See this Windows shortcut file for details.
This process does not work for macOS, as there is no single standalone executable/binary for macOS.
I don't think (I might be wrong) we can use PyInstaller because of
streamlit
. As you go through the code, you'll see that the UI/UX for IoT Inspector is based onstreamlit
. To run Inspector, you'll have to put IoT Inspector's code as an argument tostreamlit
; see this line, i.e., effectively runningpython -m streamlit run Device_List.py
. Although we can packagestreamlit
with PyInstaller, PyInstaller can't deal with the dependencies for the IoT Inspector code (i.e.,Device_List.py
and others). I haven't found a way to launch IoT Inspector without first launchingstreamlit
. In other words, it seems impossible to just do this:./Device_List.py
, whereDevice_List.py
could somehow launch thestreamlit
server internally without needing to dopython -m streamlit run Device_List.py
.If we can launch IoT Inspector with just
./Device_List.py
orpython Device_List.py
, then the problem would be solved; we could simply processDevice_List.py
with PyInstaller, and PyInstaller will take care of the dependencies.This is a critical issue. Until the above is solved, it's difficult to have a proper/easy macOS deployment.
The text was updated successfully, but these errors were encountered: