Nativefier, Streamlit: Deploy an the app (offline..)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
maowB
User
Beiträge: 12
Registriert: Donnerstag 15. Oktober 2020, 12:17

Hey,

zunächst: ich bin Python-Anfänger und habe etwa 1 Monat Python-"Erfahrung"

Ich habe eine App geschrieben die streamlit verwendet. Diese funzt tadellos.

Wenn ich die App bei streamlit "deploy", so wird sie erstmal erfolgreich erstellt, bis zu dem Moment, wo auf eine Datei, welche lokal installiert ist, zugreifen soll. Da es wegen der Inhalte der Datei nicht möglich ist, diesen Teil ebenfalls zu veröffentlichen (es handelt sich um Daten die dem Datenschutzgesetz unterliegen), geht das leider nicht anders.

Also habe ich nach Alternativen gesucht die App zu erstellen.

1) pyinstaller: führt ebenfalls zu Fehlern
2) nativefier

An Punkt 2 bin ich gerade dran. Ich kann das aktuell nicht einmal installieren -.- Meine Hoffnung ist eben, dass streamlit den Code eben doch schon irgendwie gechecked hat, weswegen die App auch "succesfully deployed" werden konnte, jedoch bei der Darstellung Online eben faxen macht, eben da Streamlit die Datei eben nicht hat (geht ja im Entwicklermodi wunderbar) - ich dafür jedoch denke, wenn ich jetzt auf Basis dieser URL eine APP erstelle, es eben doch geht; eben weil dann auf die Datei zugegriffen werden kann.

Wie dem auch sei: Ich würde gerne nativefier ausprobieren bzw. sowieso, d.h. allgemein, darauf zugreifen können, jedoch bekomme ich:


Bild

Ich habe auch schon andere Alternativen der Installation gesehen, wo meine ich '-g' und 'nativefier' einfach nur vertauscht waren. Sämtliche Videos sagen e ich müsse nur dieses Kommando ausführen und dann geht das. Bei mir tut sich rein gar nix. Habe auch mal pip install npm ausgeführt.. aber weiter kam ich dann nicht mehr :(
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@maowB,

warum muss es unbedingt Streamlit sein?
Kannst du das nicht in einer eigenen Webapp machen?

Wenn du etwas mehr zum Hintergrund erklären kannst, kann man dir vielleicht eine Alternative vorschlagen.

Um was für Daten handelt es es sich denn?
maowB
User
Beiträge: 12
Registriert: Donnerstag 15. Oktober 2020, 12:17

Hey und erstmal Danke für die Antwort. Also die App ist fertig und ich möchte Sie gerne kommende Woche in der Firma vorstellen. Mal eben schnell was anderes, gerade als Anfänger, für mich nicht mal so umzusetzen. ich habe hieran jetzt mehrere Monate gesessen, sie funktioniert einwandfrei wenn ich sie aus visualstudiocode heraus starte - keine bugs bisher, nix. Und ich würde zunächst gerne weiterhin mit streamlit arbeiten, da es für mich erstmal zugänglich ist etc. Später schaue ich mir dann ggf. auch weitere Dinge an.

Die Daten, also worum es geht (ich habe ja erklärt um was es sich handelt: Daten, die dem Datenschutz unterliegen!), sind eher unwesentlich (vermutlich unwesentlich genug, als das ich es genauso formuliert hätte können "Der Benutzer muss an einer gewissen Stelle der App aus einem DropdownMenü etwas auswählen, was aus einer Datei gezogen wird, die auf der Festplatte liegt, aber niemals im Internet landen soll". Wesentlich ist eher, dass sie nicht zu veröffentlichen sind (Dazu zählt eben auch der Inhalt, Art etc.). Aus einer Datei werden eben Daten extrahiert, die nicht im Internet erscheinen sollen. Mehr kann ich dazu leider nicht sagen (und ist meiner Meinung nach unrelevant - es geht ja nur drum: es muss aus Daten gelesen werden, die auf der HD sind). Mein Fokus lag ja nun auf nativefier gem. dem Ansatz: "Streamlit kann das Online zwar nicht, aber vielleicht hat Streamlit den Code soweit verstanden, als das ich unter Verwendung von nativefier dennoch das Programm zur Offline-Verwendung kompilieren kann". Wie zur Hölle bekomme ich das aber überhaupt erstmal installiert? Vielleicht reicht mir das ja bereits schon das Problem zu lösen (ich weiß es nicht, da noob, aber würde eben genau das austesten). Und falls das nicht geht,
Antworten