Witam,
czy jest możliwość, że po kliknięciu Buttona w Delphi uruchomiony zostanie dowolny skrypt w Pythonie (skrypt.py)?
Jeżeli tak, jak to zrobić :-)
Pozdrawiam,
Magda
Witam,
czy jest możliwość, że po kliknięciu Buttona w Delphi uruchomiony zostanie dowolny skrypt w Pythonie (skrypt.py)?
Jeżeli tak, jak to zrobić :-)
Pozdrawiam,
Magda
Jeśli na tym komputerze jest zainstalowany interpreter pythona to możesz użyć ShellExecute żeby uruchomic ten skrypt.
Okej, dziękuję :)
ShellExecute(Handle, 'open', 'C:\Users\Magda\Desktop\Python\skrypt.py', nil, nil, parametr_6);
Co oznacza ostatni, szósty parametr? Na stronie internetowej znalazłam, że jest to sposób uruchomienia aplikacji i że trzeba wpisać jedną z wartości:
SW_SHOW - pokazanie aplikacji.
SW_MINIZE - tryp zminimalizowany.
SW_MAXIMIZED - tryb zmaksymilizowany.
SW_SHOWNORMAL - otwarcie okna w domyślnych rozmiarach, przypisanych przez programistę.
Jednak u mnie nie odnajduje tych argumentów, tylko każe wpisać liczbę całkowitą.
Co do całej procedury kod:
ShellExecute(Handle, 'open', 'C:\Users\Magda\Desktop\Python\skrypt.py', nil, nil, 5);
rzeczywiście otwiera skrypt.py (ta czarna konsola), ale instrukcje ze skryptu w ogóle nie są wykonywane... Jak tą funkcją otworzyć skrypt w Pythonie aby instrukcje, które zawarte są w skrypcie zostały wykonane?
Pozdrawiam i z góry dziękuję za pomoc :-)
ShellExecute(Handle, 'open', 'C:\python\python.exe', 'C:\Users\Magda\Desktop\Python\skrypt.py', nil, 0);
Jakoś tak. Bo pewnie nie masz w systemie tak ustawionego że dwuklik na plik .py powoduje jego odpalenie?
A interpreter to chodzi o to:
Zastosowałam się do Twojej propozycji:
ShellExecute(Handle, 'open', 'C:\Python27\python.exe', 'C:\Users\Magda\Desktop\Python\arcgis.py', nil, 0);
Ale niestety to nic nie daje...
Jak wstawiam w ostatni parametr np. 1 lub 2 to przez ułamek sekundy mi mignie jakaś czarna konsolka, ale to wszystko, nie ma nawet mowy o wykonaniu instrukcji, które zawarte są w skrypcie -.-
Ale już chyba wiem dlaczego. Bo skrypt wywala błąd: NameError: name 'arcpy' is not defined podczas próby załączenia modułu arcpy:
import arcpy
Dlaczego...? :(
dodanie obrazka do załączników posta
- @furious programming
Jesteś pewny, że masz to zainstalowane? pip install arcpy
w konsoli twojego OS'a.
Edit: Ten arcpy to chyba część jakiegoś ArcGIS i ma własny interpeter, który musisz uruchamiać zamiast standardowego. Więcej o tym tutaj//gis.stackexchange.com/questions/55506/why-cant-i-import-arcpy
@madzieq a umiesz ty ten skrypt odpalić w ogóle? Jak uruchomisz interpreter to możesz go uruchomić? Bo mam wrażenie że nie...
No pewnie jest to spowodowane tym, że nie mam w zakładce Python27 >>> Lib tego modułu arcpy... Ale skąd go zaimportować? Producent ESRI jakoś nie wspominal o żadnym imporcie/instalacji itp...
wg linka z pomocą zastosowałam się do:
>>> import os
>>> os.__file__
i zwróciło mi tak jak na stronie: C:\\Python27\\ArcGIS10.2\\Lib\\os.pyc
A co z tym kodem zrobić? Co to właściwie jest? jakaś dziwna, obca mi składnia.
@echo off
echo.
echo. Setting environment for ArcGIS python 2.7
echo.
set PYTHONHOME=C:\Python27\ArcGIS10.1
set PYTHONPATH=%PYTHONHOME%;%PYTHONHOME%\Lib;%PYTHONHOME%\DLLs
set PATH=%PYTHONHOME%;%PYTHONHOME%\Scripts;%path%
set py
python --version
No i przeniosłam też folder arcpy do lokalizacji C:\Python27\Lib, ale dalej jest błąd tym razem nieco inny (mniej więcej jak ze strony internetowej z pomocy).
Traceback (most recent call last):
File "C:\Python27\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 326, in RunScript
exec codeObject in main.dict
Nie wiem, nie umiem sobie z tym poradzić ... -.-
Zapisz ten skrypt z rozszerzeniem *.bat i uruchom. Zanim to zrobisz musisz chyba jeszcze zmienić ścieżkę w tym skrypcie z set PYTHONHOME=C:\Python27\ArcGIS10.1
na set PYTHONHOME=C:\Python27\ArcGIS10.2
@madzieq Nie musisz nic robić z tym drugim skryptem jeśli nie chcesz. W programie w delphi zamień
ShellExecute(Handle, 'open', 'C:\Python27\python.exe', 'C:\Users\Magda\Desktop\Python\arcgis.py', nil, 0);
na
ShellExecute(Handle, 'open', 'C:\Python27\ArcGIS10.2\python.exe', 'C:\Users\Magda\Desktop\Python\arcgis.py', nil, 0);
ale mi nie przepuszcza tej komendy:
set PYTHONHOME = "C:\Python27\ArcGIS10.2"
Jakiś błąd składniowy, wyrzuca mi: Failed to run script - syntax error
Możecie podać przykład jakiegoś najprostszego skryptu w pythonie, który zostanie wykonany przez tą funkcję?
Bo jaki skrypt bym nie stworzyła (już bez tego modułu arcpy) to po wciśnięciu buttona nic się nie dzieje...
ShellExecute(Handle, 'open', 'C:\Python27\ArcGIS10.2\python.exe', 'C:\Users\Magda\Desktop\Python\arcgis.py', nil, 0);