Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Wie starte ich ein Python-Skript? (https://www.delphipraxis.net/187024-wie-starte-ich-ein-python-skript.html)

Der schöne Günther 21. Okt 2015 13:21

Wie starte ich ein Python-Skript?
 
Gott, ist das peinlich. Wahrscheinlich sehe ich den Wald vor lauter Zeitdruck nicht. Ich hasse diese Momente.

Ich habe ein Python-Programm gefunden.
https://github.com/wichert/po-xls

Ich kenne mich mit Python kein Stück aus. Was muss ich tun?

Wahrscheinlich erstmal Python installieren. Ich gehe auf python.org und installiere mir die Version 3.5.

Was passiert dann? Im Stammverzeichnis liegt die Datei
Delphi-Quellcode:
Setup.py.
. Doppelklicken war zu einfach gedacht, ein Fenster öffnet und schließt sich. Ich öffne eine Konsole in diesem Verzeichnis und sage
Code:
> py Setup.py build
> py Setup.py install
Eine Menge Text rattert durch, nirgendwo steht etwas von "Error". Was sage ich nun? Will ich das gewollte Skript mit "py po_to_xls.py" ausführen steigt er in der Zeile "from . import ColumnHeaders" aus.

Ist das Skript fehlerhaft oder bin ich zu dumm Python zu benutzen?

Union 21. Okt 2015 13:29

AW: Wie starte ich ein Python-Skript?
 
Blöd dass der Autor keinen Test dabei hat. Sonst könntest Du das ja in GIT direkt mal sandboxen um zu sehen ob der Fehler im Script oder der Eingabedatei liegt.

JasonDX 21. Okt 2015 13:35

AW: Wie starte ich ein Python-Skript?
 
Ohne Ahnung von Python zu haben: "import" klingt danach alsob eine Datei/Library/delphi-unit-äquivalent importiert werden soll. Ich nehme an der nächste Schritt wäre herauszufinden, ob dies eine Standard-Library ist welche installiert sein sollte, ob sie irgendwo mit dem Skript ausgeliefert wird, oder mit welchem Paket sie ausgeliefert wird.

BUG 21. Okt 2015 13:50

AW: Wie starte ich ein Python-Skript?
 
Ausgehend von den Informationen hier hast du die falsche Python-Version erwischt. Python 3.x ist zu 2.x nicht abwärtskompatibel.
An deiner Stelle würde ich erst Python 2.7, dann pip und dann damit das Tool installieren:
Code:
pip install poxls
Eventuell brauchst du dafür Administrator-Rechte.

Der schöne Günther 21. Okt 2015 16:54

AW: Wie starte ich ein Python-Skript?
 
Hallo-

Vielen Dank für die Hilfe. Habe Python 3 runtergeworfen und Python 2.7 installiert.

Mit "Pip" habe ich es auch versucht zu installieren: "pip instal poxls" meint alles sei in Ordnung, bei Ausführung des Skripts bekomme ich immer Folgendes:

Code:
Y:\>python y:\po_to_xls.py
Traceback (most recent call last):
  File "y:\po_to_xls.py", line 7, in <module>
    from . import ColumnHeaders
ValueError: Attempted relative import in non-package
Ich habe das Gefühl, irgendwas mache ich noch beim Ausführen falsch.


Eine Internet-Suche nach "Attempted relative import in non-package" ergibt nur Dinge bei denen ich kein Wort verstehe. Ein guter Treffer ist aber dabei:

Zitat:

[...]
When you attempt to run module "a" as a script: $ python test_relative_import/a.py
Traceback (most recent call last):
File "test_relative_import/a.py", line 1, in
from . import b
ValueError: Attempted relative import in non-package
$

You cannot run a python file as a script with relative import. You need to run it as a module. This works: $ python -m test_relative_import.a
hello

The reason is that if you run "a.py" as a script, its module name would be "__main__". That name cannot tell where the module is, so python cannot figure out where that "." in "from . import" is. One subtle thing is that if you run "a.py" as a module but in the same directory as "a.py", it does not work either. [...]
Gehe ich nun in src-Verzeichnis und gebe ein
Code:
python -m poxls.po_to_xls
bekomme ich:
Code:
Usage: po_to_xls.py [OPTIONS] CATALOG

Error: Missing argument "catalogs".
Hurra, es scheint zu funktionieren (fürs Erste)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz