Προς το περιεχόμενο

[INFO] Η δύναμη της Κονσόλας


Manos-Sx

Προτεινόμενες αναρτήσεις

  • Απαντ. 889
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

  • 2 μήνες μετά...

Εχω ενα rpi 3 και θελω να τρεξω απο αυτο το project* το lab_app.py. Οταν το τρεχω βγαζει αυτο το σφαλμα

 

$ python lab_app.py 
lab_app.py:148: SyntaxWarning: import * only allowed at module level
  @app.route("/to_plotly", methods=['GET'])  #This method will send the data to ploty.
 * Running on http://0.0.0.0:8080/
 * Restarting with reloader
lab_app.py:148: SyntaxWarning: import * only allowed at module level
  @app.route("/to_plotly", methods=['GET'])  #This method will send the data to ploty.
* https://github.com/cwalk/Pi-Temp/tree/master/lab_app

 

Τι μπορω να κανω? Επειδη λειπανε καποιες βιβλιοθηκες της python, εβαλα με το χερι τα python-plotly, -arrow, -flask και pysqlite αλλα και παλι τιποτα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@jim_p

 

Το συγκεκριμένο project να ξέρεις ότι δεν είναι καλογραμμένο. Ό κώδικας έχει διάφορα θεματάκια, αλλά τουλάχιστον το κομμάτι της web εφαρμογής δουλεύει.

 

Σχετικά με αυτό που ρωτάς, τo (Syntax)Warning που παίρνεις δεν είναι τίποτα απλά αυτός που έγραψε τον κώδικα κάνει ταλιμπανιές. Anyway μπορείς να το αγνοήσεις, τα υπόλοιπα που εμφανίζει στην οθόνη είναι ο web server του Flask. Αν αποφασίσεις να χρησιμοποιήσεις το project και το ανοίξεις στο ιντερνετ τότε πιθανότατα θες να χρησιμοποιήσεις κάποιον web server όπως είναι ο uwsgi ή o nginx. Ο web server του Flask είναι μόνο για development.

 

Τέλος πάντων, αν επισκεφθείς τη διεύθυνση που σου λέει θα δεις ότι θα εμφανιστεί μια ιστοσελίδα

http://0.0.0.0:8080/

Άλλα endpoints που μπορείς να επισκεφθείς είναι:

http://0.0.0.0:8080/lab_temp
http://0.0.0.0:8080/lab_env_db?from=2015-03-04&to=2015-03-05    # Αλλάζεις της ημερομηνίες κατά το δοκούν
http://0.0.0.0:8080/to_plotly

Θα χρειαστεί επίσης (μάλλον) να αλλάξεις το path της βάσης δεδομένων σε κάποιο path στο οποίο να έχεις write access. Επειδή δεν φτιάχνει τους πίνακες της βάσης, θα χρειαστεί να την αντιγράψεις. Εγώ απλά χρησιμοποιησα την βάση δεδομένων που έχει αυτός:

-conn        = sqlite3.connect('/var/www/lab_app/lab_app.db')
+conn        = sqlite3.connect('./lab_app.db')

Αν το rpi έχει κανονική python installation, τo pysqlite λογικά δεν χρειάζεται να το κάνεις install. θα χρειαστείς όμως να κάνεις install τα:

 

Flask

arrow

Adafruit_Python_DHT

plotly

 

Ο ενδεδειγμένος τρόπος για να το κάνεις αυτό είναι μέσω του pip. Το plotly νομίζω θέλει και εγγραφή στο site τους.

 

Αν έχεις απορίες, ρωτάς.

 

edit

Χρησιμοποιώντας τα στοιχεία από τη βάση δεδομένων που έχει στο git:

http://0.0.0.0:8080/lab_env_db?from=2016-04-03+00%3A00&to=2016-04-13+16%3A47

h_1480863207_5922379_686429c338.png

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 4 εβδομάδες αργότερα...

url="https://www.archlinux.org/packages/core/x86_64/glibc/download/"

wget -O test "$url" 2>&1 | while read ln; do 
  if [[ "$ln" == *%* ]]; then 
    echo "$ln" | grep -o "[0-9]*%.*"
  fi
done

 

Γινεται και πιο απλα χωρις pipe, με κανα σουμεριανο/αιγυπτιακο string substitution (ή οπως λεγεται) στο echo?

 

Και αν δεν γινεται, τουλαχιστον performance wise θα ειναι καλυτερα με sed αντι grep?

 

Του λεω να δειξει το ποσοστο (αριθμος/οι%) και οτιδηποτε μετα απο αυτο, αν το ln περιεχει %

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες


wget -O test -q --show-progress "$url"
Κάτι τέτοιο σου κάνει ? Δεν θα εμφανιστεί κανένα μήνυμα (λόγω της -q) αλλά θα εμφανιστεί η πρόοδος. Αν δεν σου αρέσει που η πρόοδος κάνει overwrite πάντα στην ίδια γραμμή, μπορείς να προσθέσεις την --progress=dot ώστε να πάρεις την παλιά κλασική πρόοδο που αλλάζει γραμμή κάθε τόσα kb.
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 3 εβδομάδες αργότερα...

Έχουμε ένα αρχείο της μορφής VARIABLE=VALUE. Μπορούμε να κάνουμε export τις μεταβλητές αυτές στο bash session; Το source φυσικά δεν δουλεύει γιατί δεν υπάρχει το "export"

MONGO_HOST=127.0.0.1
MONGO_PORT=27017
MONGO_HTTP_PORT=28017
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

eval $(sed -e "s/^/export /" file_with_vars)
Κάτι τέτοιο σου κάνει ? Βάζει μπροστά στην κάθε γραμμή το "export " και το πετάει στην eval ώστε να φορτωθεί σαν να το έκανες source.

 

. ./file_with_vars
export $(cut -d = -f1 file_with_vars)
Μια εναλλακτική θα ήταν και το παραπάνω. Όταν γράφεις το κλασικό "export τάδε=δείνα" είναι ουσιαστικά μια συντομογραφία που δίνει τιμή στην μεταβλητή και μετά "μαρκάρει" την μεταβλητή σαν exportable. Το ίδιο κάνουμε και με το παραπάνω. Κάνεις source το αρχείο και μετά κάνεις export ό,τι υπάρχει πριν το = σε κάθε γραμμή δηλαδή όλα τα ονόματα.

 

Πολύ πιθανώς να γίνεται πολύ πιο εύκολα από τα hacks που γράφω αλλά έχω χρόνια να δουλέψω bash.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...