abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 02:44 | Zajímavý projekt

    Open-source minimalistický trackball Ploopy Nano byl po modelech modelech Classic a Thumb Trackball také aktualizován. Nová verze Nano 2 používá optický senzor PAW3222 a k původně beztlačítkovému designu přidává jedno tlačítko, které ve výchozí konfiguraci firmwaru QMK přepíná režim posouvání koulí. Sestavený trackball nyní vyjde na 60 kanadských dolarů (bez dopravy a DPH).

    |🇵🇸 | Komentářů: 0
    včera 14:22 | Zajímavý článek

    Github publikoval Octoverse 2025 (YouTube), tj. každoroční přehled o stavu open source a veřejných softwarových projektů na GitHubu. Každou sekundu se připojil více než jeden nový vývojář. Nejpoužívanějším programovacím jazykem se stal TypeScript.

    Ladislav Hagara | Komentářů: 0
    včera 09:55 | Komunita

    Kit je nový maskot webového prohlížeče Firefox.

    Ladislav Hagara | Komentářů: 12
    včera 00:11 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.5. Přehled novinek s náhledy v oznámení na blogu.

    Ladislav Hagara | Komentářů: 1
    6.11. 23:55 | IT novinky

    Německo zvažuje, že zaplatí místním telekomunikačním operátorům včetně Deutsche Telekom, aby nahradili zařízení od čínské firmy Huawei. Náklady na výměnu by mohly přesáhnout dvě miliardy eur (bezmála 49 miliard Kč). Jeden scénář počítá s tím, že vláda na tento záměr použije prostředky určené na obranu či infrastrukturu.

    Ladislav Hagara | Komentářů: 1
    6.11. 18:00 | Komunita

    Po dvaceti letech skončil leader japonské SUMO (SUpport.MOzilla.org) komunity Marsf. Důvodem bylo nasazení sumobota, který nedodržuje nastavené postupy a hrubě zasahuje do překladů i archivů. Marsf zároveň zakázal použití svých příspěvků a dat k učení sumobota a AI a požádal o vyřazení svých dat ze všech učebních dat.

    karkar | Komentářů: 8
    6.11. 11:00 | IT novinky

    Úřad pro ochranu hospodářské soutěže zahajuje sektorové šetření v oblasti mobilních telekomunikačních služeb poskytovaných domácnostem v České republice. Z poznatků získaných na základě prvotní analýzy provedené ve spolupráci s Českým telekomunikačním úřadem (ČTÚ) ÚOHS zjistil, že vzájemné vztahy mezi operátory je zapotřebí detailněji prověřit kvůli možné nefunkčnosti některých aspektů konkurence na trzích, na nichž roste tržní podíl klíčových hráčů a naopak klesá význam nezávislých virtuálních operátorů.

    Ladislav Hagara | Komentářů: 16
    6.11. 10:55 | Humor

    Různé audity bezpečnostních systémů pařížského muzea Louvre odhalily závažné problémy v oblasti kybernetické bezpečnosti a tyto problémy přetrvávaly déle než deset let. Jeden z těchto auditů, který v roce 2014 provedla francouzská národní agentura pro kybernetickou bezpečnost, například ukázal, že heslo do kamerového systému muzea bylo „Louvre“. 😀

    Ladislav Hagara | Komentářů: 15
    6.11. 01:00 | Komunita

    Z upstreamu GNOME Mutter byl zcela odstraněn backend X11. GNOME 50 tedy poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.

    Ladislav Hagara | Komentářů: 19
    6.11. 00:00 | IT novinky

    Byl publikován plán na odstranění XSLT z webových prohlížečů Chrome a Chromium. S odstraněním XSLT souhlasí také vývojáři Firefoxu a WebKit. Důvodem jsou bezpečnostní rizika a klesající využití v moderním webovém vývoji.

    Ladislav Hagara | Komentářů: 1
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (48%)
     (18%)
     (17%)
     (22%)
     (15%)
     (21%)
     (16%)
     (16%)
    Celkem 322 hlasů
     Komentářů: 15, poslední 2.11. 08:25
    Rozcestník

    Dotaz: Python: jak pribalit pdftk v cx_Freeze?

    3.4.2016 21:05 zdenek2008 | skóre: 26
    Python: jak pribalit pdftk v cx_Freeze?
    Přečteno: 520×
    Pythonovym skriptem vyplnuji pdf formulare pomoci pdftk. Problem nastane, kdyz skript zmrazim pomoci cx_Freeze; zmrazeny skript pdftk nezavola a pdf formulare nevyplni. Jestli spravne rozumim, cx_Freeze umi pribalit moduly, ale jak je to s externimi programy? Umi je pribalit take? Z dokumentace jsem moc nezmoudrel. Nekde jsem cetl, ze toto by snad melo jit v jinych podobnych programech (pyinstaller, py2exe), nebo mozna pouzitim modulu pypdftk, ale to by znamenalo prepsat ten skript nebo presedlat na nektery z tech jinych programu. Nemate nejake tipy?

    Řešení dotazu:


    Odpovědi

    Řešení 1× (zdenek2008 (tazatel))
    Pavel Stárek avatar 4.4.2016 12:43 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: Python: jak pribalit pdftk v cx_Freeze?
    Umí to přibalit. Jak jsem psal, je potřeba vyplnit v setup skriptu sekci include_files třeba takto:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import sys
    from cx_Freeze import setup, Executable
    
    # Dependencies are automatically detected, but it might need fine tuning.
    #build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}
    includefiles = [("src/pdftk.exe", "pdftk.exe"), ("src/libiconv2.dll", "libiconv2.dll")]
    build_exe_options = {"packages": ["os"], "excludes": [""], "include_files": includefiles}
    #build_exe_options = {}
    # GUI applications require a different base on Windows (the default is for a
    # console application).
    base = None
    #if sys.platform == "win32":
    #    base = "Win32GUI"
    
    setup(  name = "pdftkexample",
            version = "1.0",
            description = "PdfTk example",
            options = {"build_exe": build_exe_options},
            executables = [Executable("src/pdftkexample.py", base=base)])
    
    
    Předpokládaná struktura adresáře je například: C:\MojeAplikace\src - tam bude pdftkexample.py a pdftk.exe+libiconv2.dll

    C:\MojeAplikace\setup-cxfreeze.py kde bude to co je napsané nahoře. Po zmrazení bude pdftk.exe i s knihovnou libiconv2.dll přibaleno k výslednému exe progámku. Ovšem, aby ho bylo možno volat, je potřeba zjistit kde je umístěn, to se ve vlastním skriptu, který bude volat pdftk.exe udělá takto:
    import sys
    import os
    import os.path
    
    
    def getModulePath():
        if (hasattr(sys, "frozen")):
            return os.path.dirname(sys.executable)
        return os.path.dirname(__file__)
    
    
    def getPdftkExe(exe_name="pdftk.exe"):
        path = os.path.join(getModulePath(), exe_name)
        return path
    
    
    if __name__ == "__main__":
        exe = getPdftkExe()
        print exe
    
    
    V proměné exe je celá cesta k pdftk.exe, která se dá použít pro volání pomocí popen() atd.
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    4.4.2016 14:03 zdenek2008 | skóre: 26
    Rozbalit Rozbalit vše Re: Python: jak pribalit pdftk v cx_Freeze?
    Diky, ja jsem mylne zkousel zadat pdftk v setup.py do 'includes', coz hlasilo chybu ze takovy modul neexistuje; ale i kdybych se zkusmo trefil s 'include_files', tu druhou cast s vyhledanim cesty k pdftk bych stejne nevedel. Takze diky jeste jednou, vrhnu se na to.
    5.4.2016 21:04 zdenek2008 | skóre: 26
    Rozbalit Rozbalit vše Re: Python: jak pribalit pdftk v cx_Freeze?
    Tvuj priklad jsem si upravil tak, ze cx_Freeze ted pribaluje pdftk.exe a ten dll soubor do stejne slozky s vygenerovanym exe skriptem. V puvodnim pythonovem skriptu volam pdftk takhle:
    pdftk_command='pdftk form.pdf fill_form form.fdf output form_from_script.pdf'
    os.system(pdftk_command)
    
    Zmrazeny exe skript prislusne pdf soubory nevytvari, cili stale jeste nevola pdftk. Tim se dostavam k tvemu druhemu skriptu, ktery vyhleda cestu k pdftk a vrati ji v promenne exe. Kdyz je pdftk ve stejne slozce se skriptem ktery ho vola, nemelo by stacit volat s cestou .\ , tedy takto?:
    pdftk_command='.\pdftk form.pdf fill_form form.fdf output form_from_script.pdf'
    os.system(pdftk_command)
    5.4.2016 22:01 zdenek2008 | skóre: 26
    Rozbalit Rozbalit vše Re: Python: jak pribalit pdftk v cx_Freeze?
    Pridal jsem do skriptu tvuj kod, ale zmrazeny exe pdf nevygeneruje. Jen problikne okno konzole a to je vse. Preddefinovany fdf soubor se vytvori, takze alespon zbytek skriptu funguje. S os.path moc zkusenosti jeste nemam, takze je to spis pokus-omyl; takhle jsem pouzil tvuj kod:
    import logging
    from decimal import *
    import os
    import glob
    import sys
    import os.path
    
    def getModulePath():
        if (hasattr(sys, "frozen")):
            return os.path.dirname(sys.executable)
        return os.path.dirname(__file__)
    
    def getPdftkExe(exe_name="pdftk.exe"):
        path = os.path.join(getModulePath(), exe_name)
        return path
    
    if __name__ == "__main__":
        cesta_k_pdftk_exe = getPdftkExe()
        #print(cesta k_pdftk_exe)
    
    pdftk_command=cesta_k_pdftk_exe+' form.pdf fill_form form.fdf output form_from_script.pdf'
    os.system(pdftk_command)
    
    5.4.2016 22:26 zdenek2008 | skóre: 26
    Rozbalit Rozbalit vše Re: Python: jak pribalit pdftk v cx_Freeze?
    Tvuj kod pro vyhledani cesty mi vypisuje primo "pdftk.exe", ale zmrazeny skript s nim zatim jeste nefunguje, tak mam nekde chybu. Ale zkusmo jsem do prikazu zadal "pdftk.exe" misto jen "pdftk" a vse zacalo fungovat pote co jsem do include_files v setup.py pridal prazdny pdf formular ktery se ma vyplnovat, aby se pribalil k vyslednemu baliku. No kdybych to umel, nakopal bych se sam...
    Pavel Stárek avatar 8.4.2016 17:25 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: Python: jak pribalit pdftk v cx_Freeze?
    Samozřejmě že je potřeba si pomocí include_files přidat všechny další soubory které aplikace používá, například i sdílené knihovny Microsoftu které jsou používány samotným Pythonem.

    Ten modul os.path obsahuje různé funkce pro práci s "cestami". Funkce join "sečte" dva stringy tak, že přidá správný path separator (\ / - znak v proměnné os.sep) podle typu operačního systému na kterém je spuštěna. Samozřejmě na Windows (i v Linuxu) je možné si takovéhle stringy "sčítat" ručně, ale výsledný skript nebude přenositelný mezi různými OS.
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.