[Python-de] Re: Funktion ueberschreiben?
Ulli Horlacher <[email protected]> Mon, 5 Dec 2022 08:07:21 +0000 (UTC)
| Newsgroups | gmane.comp.python.general.german |
|---|---|
| Organization | University of Stuttgart, FRG |
| Message-ID | <[email protected]> |
Peter J. Holzer <[email protected]> wrote: >>> % cat foo_wrapper >>> #!/usr/bin/python3 >>> >>> import time >>> >>> def my_asctime(tm): >>> return "Gotcha!" >>> >>> time.asctime = my_asctime >>> >>> with open("foo") as f: >>> code = f.read() >>> exec(code) >>> % ./foo_wrapper >>> Gotcha! >> >> "foo" waere dann "/usr/bin/duplicity" ? > > Ja. > >> Aber da steht doch drin: >> import time >> was mir meine grad modifizierte time.asctime() Funktion wieder ueberschreibt? > > Nein. "import" funktioniert ähnlich wie "use" in Perl. Wenn ein Modul > schon importiert wurde, wird es kein zweites Mal importiert. Ahh... sehr gut. Wieder was gelernt :-) Prinzipiell gefaellt mir dieser Ansatz, aber ich hab wohl noch was falsch gemacht (duply ruft duplicity auf): root@obertux:/opt/s3tik/bin# type -a duplicity duplicity is /opt/s3tik/bin/duplicity duplicity is /usr/bin/duplicity root@obertux:/opt/s3tik/bin# duply root list Start duply v2.2, time is 2022-12-05 08:57:09. Using profile '/root/.duply/root'. Using installed duplicity version 0.8.12, python 3.8.10 (/usr/bin/python3), gpg 2.2.19 (Home: /root/.gnupg), awk 'mawk 1.3.4 20200120', grep 'grep (GNU grep) 3.4', bash '5.0.17(1)-release (x86_64-pc-linux-gnu)'. Checking TEMP_DIR '/tmp' is a folder and writable (OK) Test - En/Decryption skipped. (GPG disabled) --- Start running command LIST at 08:57:10.534 --- Traceback (innermost last): File "<string>", line 106, in <module> File "<string>", line 92, in with_tempdir File "/usr/lib/python3/dist-packages/duplicity/dup_main.py", line 1538, in main do_backup(action) File "/usr/lib/python3/dist-packages/duplicity/dup_main.py", line 1558, in do_backup col_stats = dup_collections.CollectionsStatus(globals.backend, File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 744, in set_values self.get_backup_chains(partials + backend_filename_list) File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 896, in get_backup_chains add_to_chains(s) File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 884, in add_to_chains log.Debug(_(u"Found backup chain %s") % (new_chain.short_desc())) File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 408, in short_desc return u"[%s]-[%s]" % (dup_time.timetopretty(self.start_time), File "/usr/lib/python3/dist-packages/duplicity/dup_time.py", line 169, in timetopretty return time.asctime(time.localtime(timeinseconds)) File "/opt/s3tik/bin/duplicity", line 6, in isodate return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timeinseconds)) TypeError: an integer is required (got type time.struct_time) 08:57:10.886 Task 'LIST' failed with exit code '30'. --- Finished state FAILED 'code 30' at 08:57:10.886 - Runtime 00:00:00.351 --- root@obertux:/opt/s3tik/bin# cat duplicity #!/usr/bin/python3 import time def isodate(timeinseconds): return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timeinseconds)) time.asctime = isodate; with open("/usr/bin/duplicity") as duplicity: code = duplicity.read() exec(code) root@obertux:/opt/s3tik/bin# fpg -p asctime /usr/lib/python3/dist-packages/duplicity/dup_time.py def timetopretty(timeinseconds): u"""Return pretty version of time""" return time.asctime(time.localtime(timeinseconds)) # return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timeinseconds)) Mit der letzten auskommentierten Zeile hatte es zuvor funktioniert. Ich verstehe nicht, warum es nun zu obiger Fehlermeldung kommt (line 169 ist die drueber). Was hab ich uebersehen? >>> Was mich wieder zu der Frage zurückführt, wie Du da ein Wrapper-Script >>> installieren willst. >> >> $HOME/bin, /var/tmp/bin, etc > > D.h. du willst das nur für dich, nicht für die anderen User des Systems? > (Dass Du oben /opt erwähnst, widerspricht dem etwas) Ich teste es erst mal lokal auf meinem eigenem System, da kann ich /opt beschreiben. -- Ullrich Horlacher Server und Virtualisierung Rechenzentrum TIK Universitaet Stuttgart E-Mail: [email protected] Allmandring 30a Tel: ++49-711-68565868 70569 Stuttgart (Germany) WWW: http://www.tik.uni-stuttgart.de/ _______________________________________________ python-de Mailingliste -- [email protected] Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an [email protected] https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: [email protected]