PythonPath = "C:/python24/python.exe"
P_List = ["python.exe", "BE.py", fc, outTemp, BL_Curr]
os.spawnv(os.P_WAIT, PythonPath, P_List)
wobei fc, outTemp und BL_Curr, die Argumente sind, die ich an meine Funktion übergeben will.
BE.py sieht wie folgt aus:
Code: Alles auswählen
import arcgisscripting, sys, os, os.path, helper
gp = arcgisscripting.create()
gp.overwriteoutput = 1
FeatureClass = sys.argv[1]
out_Temp = sys.argv[2]
BL_Curr = sys.argv[3]
TempBL = outTemp + "/" + BL_Curr
if os.path.exists(TempBL) == 0:
os.mkdir(TempBL)
if gp.Describe(FeatureClass).ShapeType == "Polygon":
FC_Line = gp.PolygonToLine_management(FeatureClass,TempBL + "/Line_" + FeatureClass)
helper.PrintAddMessage("Erstellen des FeatureLayers für die Selection", 0)
else:
FC_Line = BL_dir +"/" + BL_Curr + "/" + FeatureClass
.....
Rest des Quelltextes, ist ja eigentlich uninteressant, da es ja funktionierte, als ich die Funktion noch nicht in ein extra Python-Script ausgelagert habe. Nun tritt folgende Fehlermeldung auf:
File "D:\XXXX\PY_Test\Blattschnittentfernung_4.py", line 34
import arcgisscripting, sys, os, os.path, helper, BE
DeprecationWarning: Non-ASCII character '\xe4' in file D:\XXXX\PY_Test\BE.py on line 8, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Woran liegt das und wie kann ich das Problem beheben? Was hat das mit dem Encoding auf sich? Die erste Zeile in meinem Code lautet ja schon
# coding=<utf-8>
EDIT: ach ja ganz vergessen zu schreiben: mein "Hauptscript" bricht nicht ab, die ausgelagerte Funktion wird nur nicht ausgeführt und springt einfach wieder zurück in das Main-Programm und macht dort weiter.