Форум сайта python.su
привет прогеры на python, я начал изучать python, и меня интересует такой вопрос можно ли на нем написать крутую прогу для windows, и может ли программы на python запускаться на другом компьютере без интерпретатора
Офлайн
Чиста реальна на питоне круто пишут крутые проги и круто собирают закрученные standalone экзе которые тянут за собой половину чисто конкретного интерпретатора =\
Отредактировано (Янв. 27, 2010 17:28:22)
Офлайн
AndreyTда
можно ли на нем написать крутую прогу для windows
AndreyTнет. На винде однако можно использовать инструменты типа py2exe, но в больших проектах просто использовать инструмент не получится, придется его допилитвать самому.
может ли программы на python запускаться на другом компьютере без интерпретатора
Офлайн
Лично я регулярно “на питоне круто пишут крутые проги и круто собирают закрученные standalone экзе”.
> но в больших проектах просто использовать инструмент не получится, придется его допилитвать самому
Т.е. как и везде, потребуется мозг.
..bw
Отредактировано (Янв. 28, 2010 07:15:55)
Офлайн
AndreyTМожно, но только если ты реальный кулхацкер!
можно ли на нем написать крутую прогу для windows
regallМожно примерчик? У меня пока все получается без допиливания. Просто интересно, с чем возможно придется столкнуться.
но в больших проектах просто использовать инструмент не получится, придется его допилитвать самому.
Отредактировано (Янв. 28, 2010 16:43:57)
Офлайн
igor.kaistПопулярность действительно растёт, не вы первый это замечаете. С одной стороны радует, сдругой - нет.
P.S. Что то в последние месяцы странная обстановка на форуме…
igor.kaistНе знаю, можно ли считать допиливанием или нет, но многопоточность в среде py2exe выполняется немного не так как в среде интерпритатора. В случае с py2exe обязательно необходимо дожидаться пока все потоки не завершат работу(Например, бесконечным циклом который проверяет threading.active_count()). Следовательно, хотя бы в этом конкретном случае некоторые модификации кода неизбежны (но не py2exe, если Вы имели ввиду конкретно его)
Можно примерчик? У меня пока все получается без допиливания
Офлайн
Как-то немного странно звучит… Не могли бы вы указать, чем именно среда py2exe отличается от среды python так, что это влияет на потоки?
Интересен пример из кода (py2exe, естественно).
Я не уверен 100%, но кажется такой проблемы не встречал.
Офлайн
Андрей СветловУж простите грешного, возможно я неправильно выразился.
Как-то немного странно звучит… Не могли бы вы указать, чем именно среда py2exe отличается от среды python так, что это влияет на потоки?
#!/usr/bin/env python
#-*-encoding:UTF-8-*-
import time
import threading
def target():
time.sleep(1)
print u"Опа-па"
for _ in xrange(10):
threading.Thread(target=target).start()
# ======================================================== #
# File automagically generated by GUI2Exe version 0.5.0
# Copyright: (c) 2007-2009 Andrea Gavana
# ======================================================== #
# Let's start with some default (for me) imports...
from distutils.core import setup
from py2exe.build_exe import py2exe
import glob
import os
import zlib
import shutil
# Remove the build folder
shutil.rmtree("build", ignore_errors=True)
class Target(object):
""" A simple class that holds information on our executable file. """
def __init__(self, **kw):
""" Default class constructor. Update as you need. """
self.__dict__.update(kw)
# Ok, let's explain why I am doing that.
# Often, data_files, excludes and dll_excludes (but also resources)
# can be very long list of things, and this will clutter too much
# the setup call at the end of this file. So, I put all the big lists
# here and I wrap them using the textwrap module.
data_files = []
includes = []
excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',
'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl',
'Tkconstants', 'Tkinter']
packages = []
dll_excludes = ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'tcl84.dll',
'tk84.dll']
icon_resources = []
bitmap_resources = []
other_resources = []
# This is a place where the user custom code may go. You can do almost
# whatever you want, even modify the data_files, includes and friends
# here as long as they have the same variable name that the setup call
# below is expecting.
# No custom code added
# Ok, now we are going to build our target class.
# I chose this building strategy as it works perfectly for me :-D
GUI2Exe_Target_1 = Target(
# what to build
script = "1.py",
icon_resources = icon_resources,
bitmap_resources = bitmap_resources,
other_resources = other_resources,
dest_base = "1",
version = "0.1",
company_name = "No Company",
copyright = "No Copyrights",
name = "Py2Exe Sample File",
)
# No custom class for UPX compression or Inno Setup script
# That's serious now: we have all (or almost all) the options py2exe
# supports. I put them all even if some of them are usually defaulted
# and not used. Some of them I didn't even know about.
setup(
# No UPX or Inno Setup
data_files = data_files,
options = {"py2exe": {"compressed": 2,
"optimize": 2,
"includes": includes,
"excludes": excludes,
"packages": packages,
"dll_excludes": dll_excludes,
"bundle_files": 1,
"dist_dir": "dist",
"xref": False,
"skip_archive": False,
"ascii": False,
"custom_boot_script": '',
}
},
zipfile = None,
console = [],
windows = [GUI2Exe_Target_1],
service = [],
com_server = [],
ctypes_com_server = []
)
# This is a place where any post-compile code may go.
# You can add as much code as you want, which can be used, for example,
# to clean up your folders or to do some particular post-compilation
# actions.
# No post-compilation code added
# And we are done. That's a setup script :-D
Отредактировано (Янв. 28, 2010 18:02:50)
Офлайн