Forum » Programiranje » Python compiler directive
Python compiler directive
twom ::
Executable naredim s pyinstaller --onefile ime_skripte.py
V sami skripti napišem
V sami skripti napišem
version="2023.02.22 13:10" print(version)Na kakšen način bi to spremenljivko lahko "hardkodiral" ob buildanju, ne da jo rabim vpisovat pred buildom?
kljuka13 ::
Če prav razumem, želiš pridobiti trenutni datum in čas.
from datetime import datetime version = datetime.now().strftime("%Y.%m.%d %H:%M") print(version)
secops ::
Najprej pripravi kodo tako, da umakneš podatek o verziji v svojo datoteko.
version.txt
V kodi pa potem samo prebereš to datoteko, recimo ob zagonu
main.py
Ko imaš enkrat narejeno takole, lahko v CI sistemu (Jenkins, Gitlab CI) avtomatično zgeneriraš version.txt in jo zapakiraš. Ter potem narediš z njo kar pač hočeš.
version.txt
0000.00.00 00:00
V kodi pa potem samo prebereš to datoteko, recimo ob zagonu
main.py
f = open('version.txt') version = f.read().strip() f.close()
Ko imaš enkrat narejeno takole, lahko v CI sistemu (Jenkins, Gitlab CI) avtomatično zgeneriraš version.txt in jo zapakiraš. Ter potem narediš z njo kar pač hočeš.
stages: - build build: stage: build script: - echo $(date +'%Y.%m.%d %H:%M') > version.txt - pyinstaller --onefile main.py
twom ::
Če prav razumem, želiš pridobiti trenutni datum in čas.To se spreminja in je on the fly. Jaz rabim zapečeno vrednost, kot je v času buildanja.
from datetime import datetime
version = datetime.now().strftime("%Y.%m.%d %H:%M")
print(version)
Najprej pripravi kodo tako, da umakneš podatek o verziji v svojo datoteko.
version.txt
V kodi pa potem samo prebereš to datoteko, recimo ob zagonu
0000.00.00 00:00
main.pyKo imaš enkrat narejeno takole, lahko v CI sistemu (Jenkins, Gitlab CI) avtomatično zgeneriraš version.txt in jo zapakiraš. Ter potem narediš z njo kar pač hočeš.
f = open('version.txt')
version = f.read().strip()
f.close()
stages:
- build
build:
stage: build
script:
- echo $(date +'%Y.%m.%d %H:%M') > version.txt
- pyinstaller --onefile main.py
Hm, a brez dodatne datoteke pa ne gre?
Ker potem moram pred tem še to popravit.
Jaz bi želel da date_time pyinstaller dobi v času buildanja in jo določi kot konstanto.
Zgodovina sprememb…
- spremenil: twom ()
secops ::
Lahko seveda narediš tudi tako, da je to že notri v kodi in potem z nekim regexom matchaš in zamenjaš z dejansko vrednostjo. Praksa je sicer, da je to ločeno.
Te datoteke ne popravljaš ročno, ampak ti jo CI sistem ob buildu, oziroma običajno ob releasu.
Te datoteke ne popravljaš ročno, ampak ti jo CI sistem ob buildu, oziroma običajno ob releasu.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [python] project euler problemOddelek: Programiranje | 1306 (858) | Spura |
» | Bash skriptaOddelek: Programiranje | 3288 (2600) | poweroff |
» | Beleženje udeležbe v prometu (strani: 1 2 )Oddelek: Loža | 11024 (8155) | SeMiNeSanja |
» | Win Vista HP in Daemon Tools - konfliktOddelek: Pomoč in nasveti | 1972 (1646) | El Nino |
» | [bat datoteke] Trenutni datum in uraOddelek: Programiranje | 2521 (2278) | darkolord |