2009-10-29 12 views
17

Mam wkrótce wprowadzić beta app, a to ma opcję tworzenia niestandardowych skryptów integracji na Python.Jak wdrożyć język Python do użytkowników systemu Windows?

Aplikacja będzie kierowana na Mac OS X i Windows, a mój problem dotyczy systemu Windows, w którym normalnie nie ma Pythona.

Moje aktualne podejście polega na cichym uruchomieniu instalacji Pythona 2.6. Jednak napotykam problem, który nie jest domyślnie aktywowany, a ścieżka nie jest ustawiona, gdy używasz command line options. Obawiam się, że jeśli Python jest zainstalowany wcześniej i uaktualniam do nowej wersji, może to spowodować coś więcej ...

Zastanawiam się, jak można to zrobić w czysty sposób. Czy to jest w porządku, jeśli skopiuję cały katalog Python 2.6 i umieści go w podkatalogu mojej aplikacji i zainstaluję wszystko tam? Lub z virtualenv jest możliwe uruchomienie różnych wersji Pythona (jeśli Python jest już zainstalowany na komputerze?).

Gram również przed osadzeniem Pythona za pomocą biblioteki DLL i okazało się to łatwe, ale utraciłem możliwość debugowania, więc przełączam się na wtyczki wiersza polecenia.

Wykonuję wtyczki z wiersza poleceń i odczytuję wyjścia STDOUT i STDERR. Aplikacja wykonana jest z Delphi/Lazarus. Instaluję inne moduły, takie jak JSON i klienci RPC, Win32com, ORM itd. Tworzę instalator z bitrock.

AKTUALIZACJA: Użytkownicy końcowi to właściciele małych firm, a skrypty w języku Python są tworzone przez programistów. Chcę uniknąć jakiegokolwiek dodatkowego kroku we wdrażaniu, więc chcę w pełni zintegrowanej konfiguracji.

+1

Co jest nie tak z linią w aplikacji README, która mówi: pobierz i zainstaluj Python 2.6? Co jest złego w tworzeniu dwuczęściowego MSI, w którym MSI instaluje Python MSI? –

+2

Ponieważ chcę płynnego doświadczenia instalacji;). Mam już 2 ustawienia części. Python msi jest instalowany, ale nie jest aktywowany ani nie zmienia ścieżki. Ponadto mam do czynienia z sytuacją, gdy inna wersja Pythona jest już zainstalowana. – mamcx

+1

Ponieważ końcowym użytkownikiem są małe firmy. Skrypty Pythona są tworzone przez programistów. Kolejnym krokiem do wykonania jest bariera we wdrożeniu i chcę tego uniknąć (jest jak problem z .net i java). – mamcx

Odpowiedz

13

Skopiuj folder Portable Python z instalatora do tego samego folderu, co aplikacja Delphi/Lazarus. Ustaw odpowiednio wszystkie ścieżki.

+0

W końcu robię coś takiego, kopiuję pełny folder Pythona jako podfolder ze wstępnie zainstalowanymi wszystkimi modułami, a następnie wskażę ścieżkę do niego – mamcx

+0

To zadziwiające, jak często "najprostsza rzecz, która mogłaby działać" okazuje się realną strategią. –

11

Możesz spróbować użyć opcji py2exe. Tworzy plik .exe z dołączonym już językiem Python!

+0

To nie działa dla mnie, ponieważ jest ważną częścią produktu możliwość tworzenia wtyczek w pythonie.Zastanów się, czy moja aplikacja jest apache i każdy może zbudować swoją stronę w python lub php. – mamcx

4

Zintegruj interpreter python z aplikacją Delphi za pomocą P4D. Komponenty te faktycznie działają, również w obu kierunkach (klasy Delphi wystawione na działanie Pythona jako rozszerzenia binarne i interpreter Pythona w Delphi). Widziałem też łatkę na zgodność z Lazarus na stronie "problemów" Google Code, ale wygląda na to, że mogą tam być jakieś nierozwiązane problemy.

1

Myślę, że nie ma problemu z łączeniem pakietu .EXE z narzędziem takim jak PyInstaller lub py2exe i napisanymi przez Pythona wtyczkami. Utworzony .EXE może łatwo wykryć, gdzie jest zainstalowany, a kod wewnątrz może po prostu import plików z jakiegoś ustalonego katalogu wtyczek. Nie zapominaj, że po spakowaniu skryptu Python do pliku wykonywalnego, on również pakuje interpreter języka Python do środka, więc nie ma go - pełne środowisko Python dostosowane za pomocą własnego kodu.

+0

Tak ... z tym wyjątkiem, że to samo narzędzie będzie dostępne na osx i linux. Najlepszym i prostszym sposobem są pliki .py. – mamcx

+0

Nie rozumiem kontekstu komentarza, mamcx. Z pewnością możesz użyć py2exe na wszystkich platformach, a wtyczki .py nie muszą się zmieniać. –

+0

Według strony internetowej py2exe jest tylko dla Windows ... albo coś mi brakuje? – mamcx

Powiązane problemy