Python3 und SSL

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
DatMichi
User
Beiträge: 25
Registriert: Montag 25. Mai 2015, 20:35

Ich möchte gerne E-Mails mit Python3 versenden.. mein Programm funktioniert mit Python2.x wunderbar.

Aufruf mit: python sendmail.py doku.pdf

alles wunderbar

rufe ich es aber mit python3 sendmail.py doku.pdf auf bekomme ich folgende Fehlermeldung

Traceback (most recent call last):
File "sendmail.py", line 75, in <module>
mail.send(sys.argv[1:])
File "sendmail.py", line 45, in send
server.starttls()
File "/usr/local/lib/python3.6/smtplib.py", line 756, in starttls
raise RuntimeError("No SSL support included in this Python")
RuntimeError: No SSL support included in this Python

Code: Alles auswählen

import sys, smtplib, os
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from email.utils import formatdate

Code: Alles auswählen

        server = smtplib.SMTP(self.smtpserver)
        server.ehlo()  # Has something to do with sending information
        server.starttls()
 
        server.ehlo()  # To make starttls work
        server.login(self.username, self.password)
        failed = server.sendmail(From, to, msg.as_string())
        server.quit() 
Ich weiß auch nach Stunden mit GOOGLE nicht wo ich noch suchen soll oder was noch fehlt....
Zuletzt geändert von DatMichi am Sonntag 24. September 2017, 19:37, insgesamt 1-mal geändert.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Na die Fehlermeldung ist doch sehr klar - dein Python kann kein SSL. Und da es so aussieht als ob du das selbst gebaut hast, kannst auch nur du was daran aendern :K
DatMichi
User
Beiträge: 25
Registriert: Montag 25. Mai 2015, 20:35

Auf die IDEE das Python3 kein SSL kann bin ich auch schon gekommen. Aber wie bringe ich Python3 das bei... Bei Python2.x hat ja auch alles geklappt ohne das ich etwas gemacht habe.

Python2.x

Code: Alles auswählen

import ssl 
geht

Python3.x

Code: Alles auswählen

import ssl
ergibt folgende meldung

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.6/ssl.py", line 101, in <module>
import _ssl # if we can't import it, let the error propagate
ModuleNotFoundError: No module named '_ssl'
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nochmal: du hast kein Standard-Python aus deiner Distribution. Sondern das selbst gebaut. Das sieht man deutlich am /usr/local-Prefix. Und fuer diesen Bau bist du verantwortlich. Python hat gewisse Vorraussetzungen fuer bestimmte Module, wie zB OpenSSL. Sonst baut es die nicht. Und dementsprechend muss man diese Vorraussetzungen erst mal erfuellen, und dann neu bauen.
DatMichi
User
Beiträge: 25
Registriert: Montag 25. Mai 2015, 20:35

Ich habe aktiv kein Python selber gebaut... es war bei Debian 9 installiert....

Wie bekomme ich ein Standard Python?
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mit dem Paketmanager. Aber Python 3.6 ist sehr neu, wahrscheinlich ist es noch nicht verfügbar. Und darum hat jemand das gebaut. Gibt es sonst wen, der das System administriert?
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

Debian Stretch bringt Python 3.5 mit. Sowohl in "stable" als auch in den "testing" und "unstable" Zweigen. Um Python 3.6 zu bekommen müsstest du schon gezielt den "experimental" aktivieren. Und selbst dann sollte der Pfad, in dem Python liegt, ein andere sein.

Werlche Ausgabe bekommst du, wenn du `whereis python3.5` im Terminal eingibst?

Gruß, noisefloor
DatMichi
User
Beiträge: 25
Registriert: Montag 25. Mai 2015, 20:35

Ich habe noch mal geschaut


$ ► python3 -V
Python 3.6.2

Mein Raspberry hat Python 3.4.2 drauf da funktioniert alles... Ich werde diesen morgen mal auf 3.6.2 Updaten mal schauen was dann passiert.
DatMichi
User
Beiträge: 25
Registriert: Montag 25. Mai 2015, 20:35

Update:

So es funktioniert... habe Python 3.6.2 noch mal von der Python Homepage geladen und mittels.

./configure
make
make install

installiert dann funktionierte es auf einmal... WARUM AUCH IMMER..
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

DatMichi hat geschrieben: So es funktioniert... habe Python 3.6.2 noch mal von der Python Homepage geladen und mittels.
Nochmal heisst ja, das du es schon vorher gemacht hast.... ich dachte, du haettest es nicht selbst gebaut?
DatMichi
User
Beiträge: 25
Registriert: Montag 25. Mai 2015, 20:35

ich dachte, du haettest es nicht selbst gebaut?
ich glaube wir benutzen hier einen verschiedenen Sprachgebrauch.

selbst gebaut heißt für mich wenn ich Dateien direkt verändere / anpasse... nicht wenn ich mir ein Paket wie in diesem Fall Python 3 von der Python Homepage runterlade und es installiere. Das ist für mich nicht selber bauen. Sondern eher installieren.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn du configure & make aufrufst ist das bauen. Fuer den Rest der Welt zumindest.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
nicht wenn ich mir ein Paket wie in diesem Fall Python 3 von der Python Homepage runterlade und es installiere. Das ist für mich nicht selber bauen. Sondern eher installieren.
In dem Fall ist dein Sprachgebrauch aber nicht korrekt: Du hast dir _kein_ Paket runter geladen, sondern die Quelltexte. Ein Paket wäre eine. deb-Datei, die du mit apt oder dpkg oder ... installiert. Du hast aber Python aus den Quellen selbst kompiliert, dass wird, wie __deets__ schon sagt, allgemein als "selber bauen" bezeichnet.

Gruß, noisefloor
DatMichi
User
Beiträge: 25
Registriert: Montag 25. Mai 2015, 20:35

OK

Dann habe ich es mir halt gebaut... Naja es funktioniert ja jetzt warum auch immer....
Antworten