![]() |
|
|
#2 (permalink) |
Registered Users
Bautor de whiskey
Join Date: Aug 2008
Location: Romania
Posts: 313
Rep Power: 2 ![]() |
__________________
http://www.warez-4ever.org/ -> Warez 4 Ever Forum :: Best Warez Join Us
|
|
|
|
#4 (permalink) |
Registered Users
Bautor de whiskey
Join Date: Aug 2008
Location: Romania
Posts: 313
Rep Power: 2 ![]() |
__________________
http://www.warez-4ever.org/ -> Warez 4 Ever Forum :: Best Warez Join Us
|
|
|
|
#6 (permalink) |
Registered Users
Bautor de vodka
|
Deci ca sa fie clar pentru toata lumea.
Python-ul este un limbaj dinamic de nivel inalt orientat pe obiecte. Acesta functioneaza pe baza de interpreter in mod interactiv ( scrii cod direct in interpreter ca intr-un shell ) sau citind surse ce contin cod. Ai sursa .py, dai dublu-click pe ea, porneste un process care se ocupa de citirea si executarea instructiunilor. De aceea, pana la ora actuala, o sursa in Python nu se poate transforma in machine code intr-un singur .exe care sa poata rula stand-alone, ci se poate "ingheta" alaturi de un executabil si de celelalte fisiere dependente ca sa ii porneasca si user-ului care nu are Python-ul instalat. Si pentru lucrul acesta s-au scos mai multe module dintre care cele mai bune doua ( in opinia mea ): [Doar userii inregistrati pot vedea linkurile. ] Te ajuta mai mult daca folosesti Python 2.x. [Doar userii inregistrati pot vedea linkurile. ] Te ajuta mai mult daca folosesti versiuni mai noi Python 3.x. Avantaje / Dezavantaje De py2exe nu s-a mai tinut nimeni din 2008 incoace si de aceea ultima versiune se duce pana in 2.6.x si 2.7.x ( care nici nu am vazut sa existe [ probabil pentru cei de la ActiveState { dezvolta si ei Python-ul dar nu e open source si nu sunt cei autentici } ] ) in schimb cx_Freeze continua si au si versiuni pentru 3.x. In py2exe poti prinde toate fisierele intr-un singur .exe, modificand 'bundle_files' si 'zipfile', iar in cx_Freeze inca nu descoperisem daca se poate si cum, oricum cand ajungi la partea de GUI deja se complica lucrurile si nu-ti mai arde deloc sa "ingheti" tot intr-un singur executabil. Pentru a "ingheta" surse trebuie sa ai sursa.py si ce fisiere mai vrei tu ( icon.ico, etc. ) si iti mai trebuie alaturi de celelalte fisiere un fisier setup.py care contine urmatorul cod: py2exe Code:
from distutils.core import setup
import py2exe
import os
import sys
import subprocess
import shutil
## si le fichier bundlepmw.py contient l'importation regsub (qui n'existe plus depuis la version 2.5 de Python)
## Vous pouvez sinon le faire à la main en remplaçant "regsub" par "re" et "gsub" par "sub"
fp = open(sys.prefix + os.sep + "Lib/site-packages/Pmw/Pmw_1_3/bin/bundlepmw.py")
a = fp.read().replace("regsub", "re").replace("gsub", "sub")
fp.close()
ft = open(sys.prefix + os.sep + "Lib/site-packages/Pmw/Pmw_1_3/bin/bundlepmw.py", "w")
ft.write(a)
ft.close()
## Création du fichier Pmw.py dans le répertoire courant
subprocess.call([sys.executable, sys.prefix + os.sep + "Lib/site-packages/Pmw/Pmw_1_3/bin/bundlepmw.py",
sys.prefix + os.sep + "Lib/site-packages/Pmw/Pmw_1_3/lib"])
## On copie les 2 fichiers PmwBlt.py et PmwColor.py dans le répertoire courant
shutil.copyfile(sys.prefix + os.sep + "Lib/site-packages/Pmw/Pmw_1_3/lib/PmwBlt.py", "PmwBlt.py")
shutil.copyfile(sys.prefix + os.sep + "Lib/site-packages/Pmw/Pmw_1_3/lib/PmwColor.py", "PmwColor.py")
setup
(
options={'py2exe': {"optimize": "2", 'bundle_files': 3}},
windows=[{'script':'source.pyw', 'icon_resources':[(1, 'icon.ico')]}],
name="Soft",
version='1.0',
company_name="Me",
copyright = "Me",
description='Some description.',
author='Me',
author_email='Me@domain.com',
url='http://site.com/',
#zipfile=None # "Don't send" error if zipfile is not commented and you use a windows GUI source
)
Code:
from cx_Freeze import setup, Executable
executables =
[
Executable
(
script="source.py",
initScript=None,
base='Console', # Win32GUI
compress=True,
appendScriptToExe=True,
appendScriptToLibrary=False,
icon=None,
copyDependentFiles=True
)
]
setup
(
version="1.0",
description="Some description.",
author="Me",
name="Soft",
options=
{
"build_exe":
{
"optimize": 2,
"compressed": True,
"create_shared_zip": False,
"include_in_shared_zip": False,
"append_script_to_exe": True,
"copy_dependent_files": True
}
},
executables=executables
)
cd %locatie% unde %locatie% este path-ul ce contine setup.py < pentru py2exe > setup.py py2exe < pentru cx_Freeze > setup.py build Note: Daca ai un script cu GUI si vrei sa nu se mai vada consola folosesti extensia .pyw in loc de .py. In exemplul de script pentru py2exe codul initial este pentru compatibilitatea cu Pmw, un pachet aditional pentru MegaWidgets-uri provenite din Tk si script-ul este adaptat pentru o sursa cu GUI de aceea am folosit extensia .pyw si am folosit argumentul 'windows' in loc de 'console'. Mai multe detalii gasesti la ei pe site la sectiunea documentatie. Sper ca ti-a fost de ajutor sa te lamureasca asupra mai multor lucruri.
__________________
The future is bright ...
The future is Python ! |
|