Gdzie jest błąd?

mam plik exampl.py który zawiera

celsius = 37.5
# calculate fahrenheit
fahrenheit = (celsius * 1.8) + 32
print(’%0.1f degree Celsius is equal to %0.1f degree Fahrenheit’ %(celsius,fahrenheit))

Aby go skompilować
zainstalowałem plik: py2exe-0.9.2.2.win-amd64.exe

przeciągnąłem ten plik do okna poniżej

i wyskoczył jakiś błąd. Jak i czym utworzyć plik exampl.exe?

Program w Python uruchamiasz po prostu klikając na plik z rozszerzenie .py czyli np “exampl.py”. Oczywiście w tym przypadku, gdy nie masz na końcu programu czegoś w rodzaju

import os
os.system('pause')

To okno pojawi się na monent i natychmiast zniknie. Nawet nie zdążysz zobaczyć rezultatu.

Druga opcja, możesz uruchomić program w konsoli. Odpalasz cmd i piszesz python nazwaprogamu.py :

c:\Users\Username> python exampl.py
37.5 degree Celsius is equal to 99.5 degree Fahrenheit

Ewentualnie exampl.py poprzedzasz ścieżką dostępu.

Jeżeli napiszesz po prostu python i nacisniesz Enter nie podając żadnego pliku .py jako parametr to uzyskasz konsolę Python, która służy do wpisywania kodu w taki sposób, że każda linijka jest od razu wykonywana. To samo uzyskasz wybierając z menu start Python 3.7 (64-bit). Trochę to przypomina język Basic ze starych komputerów.

C:\Users\Username> python
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("abcd")
abcd
>>> print(1+2+3)
6
>>> exit()
C:\Users\Username>

Powyższe obejmuje jedna z pierwszych stron kursu na w3schools https://www.w3schools.com/python/python_getstarted.asp .

Python w swojej podstawowej formie jest językiem interpretowanym, czyli nie kompiluje się go do .exe, tylko za każdym uruchomieniem kod źródłowy (lub bytecode .pyc - ale to teraz nieistotne) kompilowany jest do postaci zrozumiałej dla procesora i uruchamiany.

Ludzie jednak chcieli mieć możliwość dystrybuowania programów w postaci .exe. Taka czynność jest dosyć problematyczna przy rozbudowanych projektach. Przy prostych jest łatwo. Do konwersji programu do .exe służy np pakiet pyinstaller.

Nie przeraź się, pyinstaller załącza znaczną część Python do pliku .exe ale tak to się dziś robi i jest akceptowalne. Robimy więc .exe. Najpierw instalujesz pyinstaller:

C:\Users\Username> pip install pyinstaller
Collecting pyinstaller
Downloading https://files.pythonhosted.org/packages/82/96/21ba3619647bac2b34b4996b2dbbea8e74a703767ce24192899d9153c058/pyinstaller-4.0.tar.gz (3.5MB)


Successfully installed pyinstaller-4.0 pyinstaller-hooks-contrib-2020.8

Teraz przygotowujesz wersje .exe:

C:\Users\Username> pyinstaller.exe exampl.py
126 INFO: PyInstaller: 4.0
127 INFO: Python: 3.7.6


11224 INFO: Building COLLECT COLLECT-00.toc completed successfully.

Nie przejmuj się WARNING’ami. Swój program znajdziesz w katalogu dist. Jeżeli chcesz go komuś przekazać to musisz przekazać mu cały katalog dista nie tylko plik exe.

Przerób sobie kurs na w3schools https://www.w3schools.com/python/ na spokojnie, jedno proste zadanie dziennie.

Tu ugrzęzłem :grinning:
Sporo mam niejasności.
Jako Username mam Administrator i to też próbowałem

Collecting
Downloading
CMD nie rozpoznaje tego jako polecenie.
Czy te (3.5MB) na końcu też musi być?

Jak powinno wyglądać poleceni, aby to zainstalować?

Ściągnąłem ten plik https://files.pythonhosted.org/packages/82/96/21ba3619647bac2b34b4996b2dbbea8e74a703767ce24192899d9153c058/pyinstaller-4.0.tar.gz i go rozpakowałem.
W nim nie ma pliku instalacyjnego, ani żadnego exe.

W Pythonie prawie nigdy nic nie ściągasz ręcznie. Moduły instalujesz poprzezpip. Po prostu uruchom wiersz poleceń cmd i wpisz w nim
pip install pyinstaller
Cała reszta to jest wynik działania powyższego polecenia.

C:\Users\Username> to jest coś co już ci się pojawia po uruchomieniu cmd. Tego nie wpisujesz. Zamiast username będziesz miał nazwę swojego użytkownika w Windows. Generalnie to wskazuje po prostu w jakim katalogu i na jakim dysku jesteś.

Widzę, że powinieneś zacząć od podstaw związanych z wierszem poleceń. Np https://www.youtube.com/watch?v=gohuR6-wT0Y

Produkcję exe’ków potraktuj jako ciekawostkę, najpierw po prostu naucz się podstaw wiersza poleceń a potem podstaw języka https://www.w3schools.com/python/

Edit: To co wpisujesz zrobiłem w poprzednim poście pochyloną czcionką.

Jasne, masz Python 3.7.7 a pip jest w Python od 3.7.9. W 3.7.7 musiałbyś pip doinstalować ręcznie https://pip.pypa.io/en/stable/installing/

Proponuję odinstaluj Python 3.7.7 i za instaluj najnowszy z linii 3.7 tj 3.7.9 (wersji 3.8 jeszcze nie próbowałem to nie polecam)


[Python 3.7.9 - Aug. 17, 2020] [Windows x86-64 executable installer]

A może być Python 3.8.5?

Czekaj, głupoty opowiadam, pip jest od 2.7.9 i od 3.4 czyli powinieneś go mieć w każdej wersji powyżej 2.7.9 i w każdej powyżej 3.4. Może nie masz Python w ścieżce wyszukiwania? Czyli problem braku pip dalej nie rozwiązany. Zainstaluj Python ponownie i zobacz czy będzie pip. Możesz 3.8 jak chcesz ale linia 3.7 jest bardziej popularna, większe szanse że różne rzeczy będą działać.

Nie mam na komputerze pliku pip, ani katalogu.
A jak zmienię wersję to będę miał Python trial.

Instalator Pythona dodaje katalog Pythona do zmiennej środowiskowej https://pl.wikipedia.org/wiki/PATH_(zmienna), więc po zainstalowaniu Python będziesz miał pip dostępny w każdym miejscu. Po prosu podczas instalacji wybierz

Customize instalation

na kolejnym ekranie upewnij się że jest zaznaczony

pip

na kolejnym upewnij się że jest zaznaczony

Add python to enviroment variables

po zainstalowaniu zamknij wszystkie okna ‘cmd’, otwórz ponownie i polecenie pip powinno działać

pip-20.1.1-py2.py3-none-any.whl
tylko taki pip mam po ponowym zainstalowaniu

Nie ma wyboru customize

Tylko mogłem wybrać miejsce instalacji.

Aha, instalujesz PyCharm. To jest zintegrowane środowisko programistyczne dla języka programowania Python. Ja mówiłem o instalatorze samego Python. W nim znajdziesz opcje o których wspomniałem. PyCharm przyda się już podczas samego programowania. To kobyła więc jeżeli od razu nie chcesz się go uczyć to skorzystaj z prostego środowiska dostarczanego z instalatorem Python, tj Python IDLE.

To znaczy, że to nic nie pomoże?

Pomoże jeżeli zainstalujesz Python tak jak opisałem. Instalator Python i instalator PyCharm to dwie rózne rzeczy. Ja mówię o tym pierwszym.

py2exe-0.9.2.2.win-amd64
JetBrains.PyCharm.Professional.2020.1

żaden z tych tego pip nie zainstalował.

Ja już na dzisiaj muszę kończyć. Przeczytaj dokładnie to co Ci pisałem, tam jest wszystko napisane.

W tym wpisie masz napisane gdzie pobrać instalator Python

W tym wpisie masz jak zainstalować Python aby polecenie pip było dostępne zawsze z wiersza poleceń

Nie poddawaj się:)

Taki Python powstaje już od 30 lat, nie musisz ogarnąć wszystkiego w jeden dzień.

jest jakiś konkretny powód dla którego chcesz obudować skrypt gigantycznym runtimem? :smiley:

Chciałbym jak najprościej z możliwością debugowania a najlepiej “step by step”.

Zainstalowałem pip i zrobiłem upgrade:

Otworzyłem katalog z pyinstaller.exe (w D:\Python\Scripts)
W oknie CMD wkleiłem polecenie:
pyinstaller.exe B:exampl.py

i na końcu coś się zawaliło:

Już jest wszystko OK.
Dzięki za pomoc :grinning:

Ludzie, ten dzieciak was trolluje a wy sie na to nabieracie…

1 polubienie