Path: csiph.com!usenet.pasdenom.info!news.albasani.net!rt.uk.eu.org!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'scripts': 0.03; 'anyway.': 0.05; 'say,': 0.05; 'subject:Python': 0.06; 'context': 0.07; 'deployed': 0.07; 'mentioned,': 0.07; 'reason,': 0.07; 'source.': 0.07; '*is*': 0.09; 'runtime': 0.09; 'subject:using': 0.09; 'yeah,': 0.09; 'runs': 0.10; 'cc:addr:python-list': 0.11; 'python': 0.11; 'archive': 0.14; 'windows': 0.15; '"python': 0.16; '(starting': 0.16; '.py': 0.16; 'do)': 0.16; 'enough.': 0.16; 'hides': 0.16; 'route,': 0.16; 'sense,': 0.16; 'silly': 0.16; 'simplest': 0.16; 'sure.': 0.16; 'think.': 0.16; 'website)': 0.16; 'so.': 0.16; 'sender:addr:gmail.com': 0.17; 'wrote:': 0.18; 'bit': 0.19; 'app': 0.19; 'module': 0.19; 'slightly': 0.19; 'things.': 0.19; 'user.': 0.19; 'not,': 0.20; 'seems': 0.21; 'putting': 0.22; 'cc:addr:python.org': 0.22; 'install': 0.23; 'passes': 0.24; 'test.': 0.24; 'file.': 0.24; 'cc:2**0': 0.24; "i've": 0.25; 'compiled': 0.26; 'tutorials': 0.26; 'least': 0.26; 'downloaded': 0.26; 'gets': 0.27; 'header:In-Reply-To:1': 0.27; "doesn't": 0.30; 'operations,': 0.30; 'especially': 0.30; 'message- id:@mail.gmail.com': 0.30; "i'm": 0.30; '(which': 0.31; 'software,': 0.31; 'that.': 0.31; '(possibly': 0.31; 'argue': 0.31; 'assumes': 0.31; 'end,': 0.31; 'extract': 0.31; 'subject:development': 0.31; 'though.': 0.31; 'yes.': 0.31; 'anyone': 0.31; 'file': 0.32; 'probably': 0.32; 'stuff': 0.32; 'subject:the': 0.34; "i'd": 0.34; 'problem': 0.35; 'something': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'installing': 0.36; 'right?': 0.36; 'method': 0.36; 'possible': 0.36; 'application': 0.37; 'too': 0.37; 'easily': 0.37; 'being': 0.38; 'sometimes': 0.38; 'files': 0.38; 'fact': 0.38; 'rather': 0.38; 'anything': 0.39; 'does': 0.39; 'bad': 0.39; 'enough': 0.39; 'users': 0.40; 'read': 0.60; 'easy': 0.60; 'most': 0.60; 'forum': 0.61; 'course': 0.61; 'simple': 0.61; "you're": 0.61; 'offer': 0.62; 'making': 0.63; 'kind': 0.63; 'july': 0.63; 'refer': 0.63; 'choose': 0.64; 'strategy': 0.64; 'provide': 0.64; 'different': 0.65; 'selling': 0.65; '(that': 0.65; 'talking': 0.65; 'to:addr:gmail.com': 0.65; 'audience': 0.74; 'click': 0.77; 'informed': 0.78; 'click.': 0.84; 'installer': 0.84; 'packing': 0.84; 'thing,': 0.91; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=TdZ2EpotLbZw6fXyO4kiq3a0WWlVucsSTAD1B5lKkiY=; b=I/wDXClsjbrdrYzSk/vUaQh75acaqo9ctaAFUkii8K3LsCJMvK4C8hZuzpVdByp43V YkvH6BQiTPIEyxx9M84E5ltn2wYrzaBucVd0NqeeI0mOmn8bMBLU7/vTXxaV1VfkJITC NXaiyITmZmfhIOO2CsbgLibnbMnchioHtqTBiLX6mHBzlbzgsuf2ckTuxLP1e9laz6+/ V97pnTS/7QlgOwE5fQqNu88WusYJEfHeJC1aNtEFTlzPkYmc/5ajWS+ZQfJWII4VM7+F /V2WSiwyaKiZCLTQlGbm5kBrChDF34en58nv6ESykJyQ4y0OSHbHnbeJ7g1AzXFoWDAm fqkw== X-Received: by 10.152.45.65 with SMTP id k1mr16029670lam.78.1373500671244; Wed, 10 Jul 2013 16:57:51 -0700 (PDT) MIME-Version: 1.0 Sender: joshua.landau.ws@gmail.com In-Reply-To: References: <51f7f573-e4a6-4349-ae50-21de7780ed8c@googlegroups.com> <884377a7-7c95-4f2f-a52f-2e47f98b98d0@googlegroups.com> <3cca113a-90cc-445e-b609-2ed757212c4a@googlegroups.com> From: Joshua Landau Date: Thu, 11 Jul 2013 00:57:11 +0100 X-Google-Sender-Auth: Uvsu6O88a_0I5aQub9100cA4O-w Subject: Re: the general development using Python To: CM Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: python-list X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 66 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1373500673 news.xs4all.nl 15901 [2001:888:2000:d::a6]:43052 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:50401 On 11 July 2013 00:18, CM wrote: > >> I was mainly talking in the context of the original post, where it >> seems something slightly different was meant. If you're deploying to >> customers, you'd want to offer them an installer. At least, I think >> you would. That's different from packing Python into a .exe file and >> pretending it's good-to-go. > > It depends. In some sense, probably an .exe is the very simplest thing y= ou can provide a user: they download and move it to where they want, the c= lick on it, it runs. It *is* good-to-go, isn't it? (btw, I know at least= one person I've read on a forum who just won't use any installer--he feels= it can put stuff on his computer where he doesn't have good easy control o= f it.) Yeah, but why keep shipping the Python interpreter? If you choose the installer route, you don't have to keep shipping it -- it's only downloaded if you need it. If not, then you don't download it again. > Sometimes an installer might be preferable, especially if there are data = or image files or tutorials or something that go with the .exe (that weren'= t, for some reason, bundled inside it). > >> If they don't want it installed, again the best thing to do is an >> archive with some "executable" (possibly a batch file or something -- >> you Windows people would know better what you need) that just runs >> "python main_file.py". Then get them to extract + click. That's 2 >> operations, and a lot faster than some silly install process. > > But that's pretty much what the .exe that py2exe makes does anyway. It j= ust kind of hides it all inside the .exe file. The problem is that it hides it all inside the .exe file. And I'm not suggesting putting Python inside the archive -- just the runtime dependencies. >> There are a lot of ways of making an installer . >> These are saner solutions because they focus on installing rather than >> pretending that a .exe file with a packaged Python is anything like a >> compiled C source. > > I don't think most informed users of, say, py2exe think that. I think th= ey see it as "freezing" the application for single-file portability. The f= act that people will refer to it as "compiling it to an exe" is unfortunate= , yes. Fair enough. > Again, for anyone selling software, just make as few steps as possible fo= r the user. Using py2exe (which is easy to do) to freeze a lot of .py scri= pts into one easily deployed app passes that test. So does any simple meth= od you mentioned, I'm sure. It all gets us to the same place, right? But I still think my way is better. Perhaps I'm just too pragmatic about these things. This was triggered by the OP's original request -- he sounds very much like he doesn't actually want this -- and it seems to have stuck. I don't know if being pragmatic is a bad thing, though. In the end, something like this is best solved with a bit of A/B testing=C2=B9. Sit a couple of your audience down, give them the best implementation of each strategy (starting from the website) for some trivialised module and see what they think. If it turns out that being pragmatic does have compromises, I'm not going to argue with the data. I'd still be grumpy, though. =C2=B9 This of course assumes you care enough to do so.