Σελίδα 3 από 3

Re: Αδυναμία ανανέωσης υπογραφής

ΔημοσίευσηΔημοσιεύτηκε: 24 Ιαν 2023, 00:20
από Maras
Καλησπέρα, σε Ubuntu 22.10, vanilla εγκατάσταση με όλες τις ενημερώσεις, υπάρχουν ήδη εγκατεστημένα τα πακέτα :
Κώδικας: Επιλογή όλων
python3-gi
python3-mechanize

Το init.py όμως χτυπάει error όταν το τρέξουμε με την εντολή :
Κώδικας: Επιλογή όλων
python3 init.py

(θέλει και αλλαγή η εντολή του βήματος 3, γιατί το Ubuntu δεν βλέπει εκτελέσιμο python σκέτο αλλά python3, εάν δεν είναι εγκατεστημένο το πακέτο python-is-python3).
Το error βρίσκεται στην γραμμή 862 του αρχείου forum_signature_gtk3.py :
Κώδικας: Επιλογή όλων
if not dct.has_key(d):

γιατί η μέθοδος has_key() έχει αφαιρεθεί στην python3, έτσι με αλλαγή της γραμμής σε :
Κώδικας: Επιλογή όλων
if not d in dct:

το πρόγραμμα ανοίγει.

Re: Αδυναμία ανανέωσης υπογραφής

ΔημοσίευσηΔημοσιεύτηκε: 24 Ιαν 2023, 12:49
από the_eye
Ok, έκανα τις αλλαγές. Για δοκίμασε τώρα.

Re: Αδυναμία ανανέωσης υπογραφής

ΔημοσίευσηΔημοσιεύτηκε: 25 Ιαν 2023, 12:03
από Reinach
the_eye έγραψε:Τελικά το πρόβλημα είναι στην νέα Python 3.7 όπου έχει καταργηθεί η εντολή platform.linux_distribution
https://docs.python.org/3.5/library/pla ... stribution

Θα κάνω μια αλλαγή στον κώδικα και ξαναδοκίμασε.
Κάνε επανεκκίνηση και τρέξε το βήμα 3 του οδηγού
viewtopic.php?f=6&t=15460


Το έκανα το βήμα 3, έτρεξε το προγραμματάκι και εμφάνισε όλα τα νέα στοιχεία στο παράθυρο που άνοιξε, αλλά δεν τα έστειλε αυτόματα στην υπογραφή μου στο φόρουμ όταν έδωσα το όνομά μου και τον κωδικό χρήστη. Για κοίταξέ το και αυτό λίγο.

Στο τερματικό δίνει αυτό:
Κώδικας: Επιλογή όλων
Namespace(debug=False, text_only=False)
1 Γνώσεις Linux: � ┃ Προγραμματισμού: � ┃ Αγγλικών: �
2 Ubuntu 22.04 Jammy Jellyfish 5.15.0-58-generic 64bit (el_GR.UTF-8, MATE mate)
3 Intel Core i5-1035G1 CPU @ 1.00GHz ‖ RAM 19566 MiB ‖ LENOVO LNVNB161216 - LENOVO 81WE
4 Intel Iris Plus Graphics G1 (Ice Lake) [8086:8a56] {i915}
5 wlp0s20f3: Intel Ice Lake-LP PCH CNVi WiFi [8086:34f0] (rev 30) ⋮ enx7cc2c61085a5: 2357:0601 TP-Link UE300 10/100/1000 LAN (ethernet mode) [Realtek RTL8153]
Traceback (most recent call last):
  File "/tmp/ntoulasd-ubuntu-gr_forum_signature-1920c5a/forum_signature_gtk3.py", line 627, in webwrapper
    webreply = self.sendtoweb()
  File "/tmp/ntoulasd-ubuntu-gr_forum_signature-1920c5a/forum_signature_gtk3.py", line 703, in sendtoweb
    m = re.search('<div class="error">(.*)</div>', h1)
  File "/usr/lib/python3.10/re.py", line 200, in search
    return _compile(pattern, flags).search(string)
TypeError: cannot use a string pattern on a bytes-like object

Re: Αδυναμία ανανέωσης υπογραφής

ΔημοσίευσηΔημοσιεύτηκε: 25 Ιαν 2023, 12:51
από Maras
@the_eye, μήπως στην γραμμή 701, θα πρέπει να αλλάξει από :
Κώδικας: Επιλογή όλων
h1=r1.read()

σε
Κώδικας: Επιλογή όλων
h1=r1.read().decode('utf-8')

για να μπορέσει η re.search της επόμενης γραμμής να ψάξει στο κείμενο?

Re: Αδυναμία ανανέωσης υπογραφής

ΔημοσίευσηΔημοσιεύτηκε: 26 Ιαν 2023, 13:03
από the_eye
@Reinach Σκεφτόμουνα αυτή την λειτουργία να την αφαιρέσω, αφού με ένα copy paste μπορούμε να βάλουμε την υπογραφή στο forum.
@Maras Πέρασα και αυτή την αλλαγή. Για δοκίμασε.

Re: Αδυναμία ανανέωσης υπογραφής

ΔημοσίευσηΔημοσιεύτηκε: 26 Ιαν 2023, 13:26
από Reinach
the_eye έγραψε:@Reinach Σκεφτόμουνα αυτή την λειτουργία να την αφαιρέσω, αφού με ένα copy paste μπορούμε να βάλουμε την υπογραφή στο forum.

Σωστό και αυτό. Σκέφτηκα όμως ότι αν γίνεται αυτόματα θα είναι καλύτερα. Άρα τώρα θα το κάνω με επικόλληση.

Edit: οκ, όλα εντάξει, ευχαριστώ και τους δύο.