Otwarcie skryptu.py w Delphi

Odpowiedz Nowy wątek
2014-12-11 23:57
0

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

Pozostało 580 znaków

2014-12-11 23:59
2

Jeśli na tym komputerze jest zainstalowany interpreter pythona to możesz użyć ShellExecute żeby uruchomic ten skrypt.


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.

Pozostało 580 znaków

2014-12-12 00:21
0

Okej, dziękuję :)

Pozostało 580 znaków

2014-12-12 13:52
0
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 :-)

edytowany 1x, ostatnio: madzieq, 2014-12-12 13:54
Masz błąd - powinno być SW_MINIMIZE - furious programming 2014-12-12 17:41

Pozostało 580 znaków

2014-12-12 14:41
1
  1. Te ostatnie parametry to enum, czyli int ale o ograniczonych wartościach z etykietkami. Nie przejmuj się tym, to akurat bez znaczenia byleby wartość była 0-3 ;)
  2. Ja bym zrobił inaczej, tzn otworzył interpreter pythona i podał ten plik jako parametr:
    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?


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.
edytowany 1x, ostatnio: Shalom, 2014-12-12 14:41
u mnie na siódemce tak jest i chyba nic nie ustawiałem (oprócz path ofc) - Wizzie 2014-12-12 16:47

Pozostało 580 znaków

2014-12-12 16:46
0

A interpreter to chodzi o to:

2b67d9107bc71.png

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

edytowany 4x, ostatnio: furious programming, 2014-12-12 17:56
@madzieq - z obrazkami jest tak: dodajesz obrazek do załączników, klikasz na jego nazwę i w miejsce kursora wstawiana jest linijka, która pozwala wyświetlić obrazek w poście; Wejdź w edycję tego posta i zobacz jak jest teraz - prosta rzecz :) - furious programming 2014-12-12 17:44
Ok będę pamiętać :) - madzieq 2014-12-12 17:54
Jakby co jest dział Test - możesz śmiało zakładać wątki lub dopisywać się do istniejących i testować różne rzeczy ;) - furious programming 2014-12-12 17:57

Pozostało 580 znaków

2014-12-12 16:58
1

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:http://gis.stackexchange.com/[...]55506/why-cant-i-import-arcpy

edytowany 2x, ostatnio: Wizzie, 2014-12-12 17:06

Pozostało 580 znaków

2014-12-12 17:07
1

@madzieq a umiesz ty ten skrypt odpalić w ogóle? Jak uruchomisz interpreter to możesz go uruchomić? Bo mam wrażenie że nie...


Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.
hehe no własnie sie zorientowałam ze skrypt mi sie nie odpala, bo nie mam modułu arcpy :P Dopiero sie zorientowałam, bo w ArcGISie nie trzeba importować tego modułu i tam skrypt śmiga... - madzieq 2014-12-12 17:09

Pozostało 580 znaków

2014-12-12 17:08
0

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...

w edicie mojego postu masz linka z pomocą, ten twój cały program zawiera chyba swój interpreter Pythona, gdzie masz już zainstalowany moduł arcpy. - Wizzie 2014-12-12 17:09

Pozostało 580 znaków

2014-12-12 17:45
0

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

  • File "C:\Users\Magda\Desktop\Python\arcgis.py", line 1, in <module>*
    • import arcpy
      File "C:\Python27\lib\arcpy__init__.py", line 21, in <module>*
    • from arcpy.geoprocessing import gp//
      File "C:\Python27\lib\arcpy\geoprocessing__init__.py", line 14, in <module>
      from _base import *
      File "C:\Python27\lib\arcpy\geoprocessing_base.py", line 14, in <module>
      import arcgisscripting
      ImportError: No module named arcgisscripting*

Nie wiem, nie umiem sobie z tym poradzić ... -.-

edytowany 3x, ostatnio: furious programming, 2014-12-12 17:46

Pozostało 580 znaków

2014-12-12 20:10

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0