How To Install Py2exe In Ubuntu

supernewbeat.bitballoon.comHow To Install Py2exe In Ubuntu ► ► ►
How To Install Py2exe In Ubuntu 4,0/5 6650reviews
How To Install Py2exe In Ubuntu

My first look at Python was an accident, and I didn't much like what I saw at the time. It was early 1997, and Mark Lutz's book Programming Python from O'Reilly & Associates had recently come out. O'Reilly books occasionally land on my doorstep, selected from among the new releases by some mysterious benefactor inside the organization using a random process I've given up trying to understand. One of them was Programming Python. I found this somewhat interesting, as I collect computer languages. I know over two dozen general-purpose languages, write compilers and interpreters for fun, and have designed any number of special-purpose languages and markup formalisms myself. My most recently completed project, as I write this, is a special-purpose language called SNG for manipulating PNG (Portable Network Graphics) images.

I'm pretty sure what py2exe does is bundle the python interpreter with the script. However, on most GNU/Linux systems, either python is already installed or can be easily installed, so there's no problem with just distributing the.py file. All the major GNU/LInux distributions should include python, and I know.

Interested readers can surf to the SNG home page. I have also written implementations of several odd general-purpose languages on my Retrocomputing Museum page,. I had already heard just enough about Python to know that it is what is nowadays called a “scripting language”, an interpretive language with its own built-in memory management and good facilities for calling and cooperating with other programs.

So I dived into Programming Python with one question uppermost in my mind: what has this got that Perl does not? Perl, of course, is the 800-pound gorilla of modern scripting languages. It has largely replaced shell as the scripting language of choice for system administrators, thanks partly to its comprehensive set of UNIX library and system calls, and partly to the huge collection of Perl modules built by a very active Perl community. The language is commonly estimated to be the CGI language behind about 85% of the “live” content on the Net. Larry Wall, its creator, is rightly considered one of the most important leaders in the Open Source community, and often ranks third behind Linus Torvalds and Richard Stallman in the current pantheon of hacker demigods. At that time, I had used Perl for a number of small projects.

I'd found it quite powerful, even if the syntax and some other aspects of the language seemed rather ad hoc and prone to bite one if not used with care. It seemed to me that Python would have quite a hill to climb as yet another scripting language, so as I read, I looked first for what seemed to set it apart from Perl. I immediately tripped over the first odd feature of Python that everyone notices: the fact that whitespace (indentation) is actually significant in the language syntax. The language has no analog of the C and Perl brace syntax; instead, changes in indentation delimit statement groups. And, like most hackers on first realizing this fact, I recoiled in reflexive disgust. I am just barely old enough to have programmed in batch FORTRAN for a few months back in the 1970s.

Most hackers aren't these days, but somehow our culture seems to have retained a pretty accurate folk memory of how nasty those old-style fixed-field languages were. Indeed, the term “free format”, used back then to describe the newer style of token-oriented syntax in Pascal and C, has almost been forgotten; all languages have been designed that way for decades now. Or almost all, anyway.

It's hard to blame anyone, on seeing this Python feature, for initially reacting as though they had unexpectedly stepped in a steaming pile of dinosaur dung. That's certainly how I felt.

I skimmed through the rest of the language description without much interest. I didn't see much else to recommend Python, except maybe that the syntax seemed rather cleaner than Perl's and the facilities for doing basic GUI elements like buttons and menus looked fairly good. I put the book back on the shelf, making a mental note that I should code some kind of small GUI-centered project in Python sometime, just to make sure I really understood the language. But I didn't believe what I'd seen would ever compete effectively with Perl.

A lot of other things conspired to keep that note way down on my priority list for many months. The rest of 1997 was eventful for me; it was, among other things, the year I wrote and published the original version of “The Cathedral and the Bazaar”. But I did find time to write several Perl programs, including two of significant size and complexity. One of them, keeper, is the assistant still used to file incoming submissions at the Metalab software archive. It generates the web pages you see. The other, anthologize, was used to automatically generate the PostScript for the sixth edition of Linux from the Linux Documentation Project's archive of HOWTOs. Both programs are available at Metalab.

Writing these programs left me progressively less satisfied with Perl. Larger project size seemed to magnify some of Perl's annoyances into serious, continuing problems. The syntax that had seemed merely eccentric at a hundred lines began to seem like a nigh-impenetrable hedge of thorns at a thousand. “More than one way to do it” lent flavor and expressiveness at a small scale, but made it significantly harder to maintain consistent style across a wider code base. And many of the features that were later patched into Perl to address the complexity-control needs of bigger programs (objects, lexical scoping, “use strict”, etc.) had a fragile, jerry-rigged feel about them.

These problems combined to make large volumes of Perl code seem unreasonably difficult to read and grasp as a whole after only a few days' absence. Also, I found I was spending more and more time wrestling with artifacts of the language rather than my application problems. And, most damning of all, the resulting code was ugly—this matters. Ugly programs are like ugly suspension bridges: they're much more liable to collapse than pretty ones, because the way humans (especially engineer-humans) perceive beauty is intimately related to our ability to process and understand complexity. A language that makes it hard to write elegant code makes it hard to write good code. With a baseline of two dozen languages under my belt, I could detect all the telltale signs of a language design that had been pushed to the edge of its functional envelope. By mid-1997, I was thinking “there has to be a better way” and began casting about for a more elegant scripting language.

One course I did not consider was going back to C as a default language. The days when it made sense to do your own memory management in a new program are long over, outside of a few specialty areas like kernel hacking, scientific computing and 3-D graphics—places where you absolutely must get maximum speed and tight control of memory usage, because you need to push the hardware as hard as possible. For most other situations, accepting the debugging overhead of buffer overruns, pointer-aliasing problems, malloc/free memory leaks and all the other associated ills is just crazy on today's machines. Far better to trade a few cycles and a few kilobytes of memory for the overhead of a scripting language's memory manager and economize on far more valuable human time. Indeed, the advantages of this strategy are precisely what has driven the explosive growth of Perl since the mid-1990s. I flirted with Tcl, only to discover quickly that it scales up even more poorly than Perl.

Old LISPer that I am, I also looked at various current dialects of Lisp and Scheme—but, as is historically usual for Lisp, lots of clever design was rendered almost useless by scanty or nonexistent documentation, incomplete access to POSIX/UNIX facilities, and a small but nevertheless deeply fragmented user community. Amore A Prima Svista Italy Earthquake there. Perl's popularity is not an accident; most of its competitors are either worse than Perl for large projects or somehow nowhere near as useful as their theoretically superior designs ought to make them.

My second look at Python was almost as accidental as my first. In October 1997, a series of questions on the fetchmail-friends mailing list made it clear that end users were having increasing trouble generating configuration files for my fetchmail utility. The file uses a simple, classically UNIX free-format syntax, but can become forbiddingly complicated when a user has POP3 and IMAP accounts at multiple sites. As an example, see Listing 1 for a somewhat simplified version of mine.

I decided to attack the problem by writing an end-user-friendly configuration editor, fetchmailconf. The design objective of fetchmailconf was clear: to completely hide the control file syntax behind a fashionable, ergonomically correct GUI interface replete with selection buttons, slider bars and fill-out forms. The thought of implementing this in Perl did not thrill me. I had seen GUI code in Perl, and it was a spiky mixture of Perl and Tcl that looked even uglier than my own pure-Perl code.

It was at this point I remembered the bit I had set more than six months earlier. This could be an opportunity to get some hands-on experience with Python. Of course, this brought me face to face once again with Python's pons asinorum, the significance of whitespace. This time, however, I charged ahead and roughed out some code for a handful of sample GUI elements. Oddly enough, Python's use of whitespace stopped feeling unnatural after about twenty minutes. Nikon Stabileyes 12x32 Manualidades.

I just indented code, pretty much as I would have done in a C program anyway, and it worked. That was my first surprise.

My second came a couple of hours into the project, when I noticed (allowing for pauses needed to look up new features in Programming Python) I was generating working code nearly as fast as I could type. When I realized this, I was quite startled. An important measure of effort in coding is the frequency with which you write something that doesn't actually match your mental representation of the problem, and have to backtrack on realizing that what you just typed won't actually tell the language to do what you're thinking. An important measure of good language design is how rapidly the percentage of missteps of this kind falls as you gain experience with the language.

When you're writing working code nearly as fast as you can type and your misstep rate is near zero, it generally means you've achieved mastery of the language. But that didn't make sense, because it was still day one and I was regularly pausing to look up new language and library features! This was my first clue that, in Python, I was actually dealing with an exceptionally good design. Most languages have so much friction and awkwardness built into their design that you learn most of their feature set long before your misstep rate drops anywhere near zero. Python was the first general-purpose language I'd ever used that reversed this process. Not that it took me very long to learn the feature set. I wrote a working, usable fetchmailconf, with GUI, in six working days, of which perhaps the equivalent of two days were spent learning Python itself.

This reflects another useful property of the language: it is compact--you can hold its entire feature set (and at least a concept index of its libraries) in your head. C is a famously compact language. Perl is notoriously not; one of the things the notion “There's more than one way to do it!” costs Perl is the possibility of compactness. But my most dramatic moment of discovery lay ahead. My design had a problem: I could easily generate configuration files from the user's GUI actions, but editing them was a much harder problem.

Or, rather, reading them into an editable form was a problem. The parser for fetchmail's configuration file syntax is rather elaborate. It's actually written in YACC and Lex, two classic UNIX tools for generating language-parsing code in C. In order for fetchmailconf to be able to edit existing configuration files, I thought it would have to replicate that elaborate parser in Python. I was very reluctant to do this, partly because of the amount of work involved and partly because I wasn't sure how to ascertain that two parsers in two different languages accept the same. The last thing I needed was the extra labor of keeping the two parsers in synchronization as the configuration language evolved! This problem stumped me for a while.

Then I had an inspiration: I'd let fetchmailconf use fetchmail's own parser! I added a --configdump option to fetchmail that would parse.fetchmailrc and dump the result to standard output in the format of a Python initializer. For the file above, the result would look roughly like Listing 2 (to save space, some data not relevant to the example is omitted). Python could then evaluate the fetchmail --configdump output and have the configuration available as the value of the variable “fetchmail”.

This wasn't quite the last step in the dance. What I really wanted wasn't just for fetchmailconf to have the existing configuration, but to turn it into a linked tree of live objects. There would be three kinds of objects in this tree: Configuration (the top-level object representing the entire configuration), Site (representing one of the sites to be polled) and User (representing user data attached to a site). The example file describes five site objects, each with one user object attached to it. I had already designed and written the three object classes (that's what took four days, most of it spent getting the layout of the widgets just right). Each had a method that caused it to pop up a GUI edit panel to modify its instance data.

My last remaining problem was somehow to transform the dead data in this Python initializer into live objects. I considered writing code that would explicitly know about the structure of all three classes and use that knowledge to grovel through the initializer creating matching objects, but rejected that idea because new class members were likely to be added over time as the configuration language grew new features. If I wrote the object-creation code in the obvious way, it would be fragile and tend to fall out of sync when either the class definitions or the initializer structure changed.

What I really wanted was code that would analyze the shape and members of the initializer, query the class definitions themselves about their members, and then adjust itself to impedance-match the two sets. This kind of thing is called metaclass hacking and is generally considered fearsomely esoteric—deep black magic. Most object-oriented languages don't support it at all; in those that do (Perl being one), it tends to be a complicated and fragile undertaking. I had been impressed by Python's low coefficient of friction so far, but here was a real test. How hard would I have to wrestle with the language to get it to do this?

I knew from previous experience that the bout was likely to be painful, even assuming I won, but I dived into the book and read up on Python's metaclass facilities. The resulting function is shown in Listing 3, and the code that calls it is in Listing 4. That doesn't look too bad for deep black magic, does it? Thirty-two lines, counting comments. Just from knowing what I've said about the class structure, the calling code is even readable.

But the size of this code isn't the real shocker. Brace yourself: this code only took me about ninety minutes to write—and it worked correctly the first time I ran it. To say I was astonished would have been positively wallowing in understatement. It's remarkable enough when implementations of simple techniques work exactly as expected the first time; but my first metaclass hack in a new language, six days from a cold standing start? Even if we stipulate that I am a fairly talented hacker, this is an amazing testament to Python's clarity and elegance of design. There was simply no way I could have pulled off a coup like this in Perl, even with my vastly greater experience level in that language. It was at this point I realized I was probably leaving Perl behind.

This was my most dramatic Python moment. But, when all is said and done, it was just a clever hack. The long-term usefulness of a language comes not in its ability to support clever hacks, but from how well and how unobtrusively it supports the day-to-day work of programming.

The day-to-day work of programming consists not of writing new programs, but mostly reading and modifying existing ones. So the real punchline of the story is this: weeks and months after writing fetchmailconf, I could still read the fetchmailconf code and grok what it was doing without serious mental effort. And the true reason I no longer write Perl for anything but tiny projects is that was never true when I was writing large masses of Perl code. I fear the prospect of ever having to modify keeper or anthologize again—but fetchmailconf gives me no qualms at all. Perl still has its uses.

For tiny projects (100 lines or fewer) that involve a lot of text pattern matching, I am still more likely to tinker up a Perl-regexp-based solution than to reach for Python. For good recent examples of such things, see the timeseries and growthplot scripts in the fetchmail distribution. Actually, these are much like the things Perl did in its original role as a sort of combination awk/sed/grep/sh, before it had functions and direct access to the operating system API. For anything larger or more complex, I have come to prefer the subtle virtues of Python—and I think you will, too. All listings referred to in this article are available by anonymous download in the file. I am considering taking on one or two more languages for the purpose of creating public release applications. Having read your article 'Why Python?'

, I must say it has certainly sparked my interest. My questions are as follows. Does python produce a compiled distributable program, or as one readers comment appeared to hint at, must an end user have 'Python installed on there machine to run Python apps?

My main interests are programming languages that can produce compiled programs that can be used by the end user without the need of installing the programming language itself. Did i word the right, hope so) In any case I will continue researching this and will probably discover the answer on my own very shortly, but answering this here could also help others with similar questions. Thanks =MANTA=. I am just barely old enough to have programmed in batch FORTRAN for a few months back in the 1970s. Most hackers aren't these days, but somehow our culture seems to have retained a pretty accurate folk memory of how nasty those old-style fixed-field languages were. Indeed, the term “free format”, used back then Those who want to move the to describe the newer style of token-oriented syntax in Pascal and C, has almost been forgotten; all languages have been designed that way for decades now. Or almost all, anyway.

It's hard to blame anyone, on seeing this Python feature, for initially reacting as though they had unexpectedly stepped in a steaming pile of dinosaur dung. So, esr is pretty stunned that he learned Python in a few days. Well, how about C? I went from knowing nothing but BASIC (in which I have been hacking for several years) to fairly good competence in C, in about a fortnight on and off.

And I'm not in any way a wizardly hacker, I'm an adolescent who taught myself programming with BASIC. So I think the moral of this is that /most/ programming languages are easy to learn if you've already learnt the practices in another language. Either that, or it's actually worthwhile spending longer than is considered normal in BASIC before going elsewhere. In my first week I wrote a daemon to watch a network share and grab files from it to move somewhere else - configurable on the command line. In my second week, Newton-Raphson iterations (with functions stored as binary trees). I haven't tried Python, so I don't know how easy it is, but esr's description of how easy he found Python sounds a lot like my own experiences teaching myself C. Maybe C isn't as hard to use as esr suggests.

OK, so neither of these were robust production-standard code, but they're not easy to break. Esr's opinion carried weight because the comparison is based on my not one or two languages. As for finding it easier to learn multiple languages. Yes, knowing many languages myself I would say that each language gets a little easier to pick up, but I am speaking from my own relative point of view of course. My first language was like most, BASIC. Finding that too slow for video games and other graphics intensive use I went for the throat and learned 6502 and 6510 ML (Yes, I am dating myself LOL especially since I didn't get into programming until I was 30!), after that I learned ASM. When the internet bloomed in the 90's I switched to HTML and scripted languages such as ASP and PHP, having mastered those I am now seeking out one or two modern compiled languages with which to write LINUX, WinOS desktop and I-Phone apps.

What I have found that makes subsequent languages easier to learn is the basic components all have in common such as Loops, Conditional Branches, Subroutines/Functions. Looking at them this way in my head (perhaps because of my experience in ML and ASM) I can quickly see relational functionality between almost every language I have learned so far. The tricky part for me seems to be keeping the syntax quirks for multiple languages straight in my head. Since you are only on your second language I wanted share my thoughts on the similarities and add a suggestion (if you are truely hungry to master the machine) to try and learn at least one of the root languages ML or ASM. I realize that most poeple call them dead languages but I can promise you that even if you never write anything in them, one you have learned ML or ASM you will never see the way a computer thinks the same way again. Benefits of knowing ML in a nut shell.

There is no such thing as copy protection. Anything that can be written can be unwritten. If you can envision it in your mind you can teach a computer to do it. That doesn't mean I advocate cracking software, just that you will have the deepest understanding of how computers think and operate possible, and those principles and fundamentals will help you in whatever programming language you are using.

One year ago i was (almost) new to linux (ubuntu), i knew no python, zero, at all. My need was to store and retrive records to/from a database (any free one) depending on the tcp input stream both to display and store. I needed it fast and to use immediately. One google search and python with apropriate library was on the firsts results.

Learning and implementing, one week in spare time. The code could be prettier (not a programmer for years) but it works! Now, i didnt know about the easy interaction with graphics, and makes me willing to trash the terminal output and draw a nice window.

My problems (IMHOIMHOIMHO) with the writing is simply it is again a one sided Perl vs.Python article with some mistakings. First: I am not a great Perl hacker, but I can easily reread my 2000 lines of code - if one has difficulties with it, then should reconsider the style. It is true that you can write obscure lines in Perl - as you can use only idioms in speach that only native and local speakers can understand. But it is a different style to speak among friends (short dirty codes for yourself) and to the audience (clearly articulated code for others). Not understanding the difference is your shame. Then: Python is easy to learn.

Reading Python programming it really seems easy for me: nice legible classes, methods, easy to use documentation etc. But I am somewhat AFTER Perl. Simply witout knowing any programming language Python could also bring difficulties. It is impossible to judge how easy it is to learn Python once you know e.g.Perl. Then you can only judge if Python appeals you more or not. But do not confuse the terms. For me Ocaml is an interesting challenge and no shock at all.

Is Ocaml easy to learn???? For I have the opposite feeling with C. Python is a nice language with its one way to do it method, where problems of style is less a matter. But for some it is never appealing. Some state that programming is not art but engineering, but for some during programming sometimes the intuitive part of the brain (a helpful part) plays with the possibilities of style, leaving the rational part a bit of sleep, offering a different angle. As in life some people has style like a franchise hamburger, the same is with coding probably.

Some people feel Python boring with annoying intendation and play with orcish or latin modules writing useless but fun code, and some people feel Perl confusing in change. As tools both languages are good tools with different emphasis.

And being a Python fun I would not miss Perl. And vice versa. This article is timeless and timely.

The former accurately portrays the yearning for the right tool to do the job. Sleepless nights and turning and tossing. The latter now prompts me to revisit a project put aside for the last 4 years. I encountered Perl at about the time that the article was written to process Excel files.

I hated and do hate manual data entry and carve up scripts and makefiles to automate the task. Then the idea of a GUI came up and attempted to develop a GUI for the end users using the Win32 OLE Perl Module. And had a look at Perl/Tk but the program became increasingly lengthy and I had to put it aside. Your piece on Pyhton objects for the fetchmail conf is inspirational and may be just what I need.

I had looked at Python two years ago, documented my encounter but now will revisit it again. For small jobs on data processing, Perl still shines but for bigger projects such as the one I have and another that was floated around in 2001, Python may be the right tool for it.

It will be an adventure. I really believe I could be a good addition to the hacker community because I read your how to become a hacker page at catb.org and I have the makings of a great hacker just don't know where to start so if you could hit me up at that e-mail address I would be forever grateful. This is the Manifesto that I follow. Another one got caught today, it's all over the papers.

'Teenager Arrested in Computer Crime Scandal', 'Hacker Arrested after Bank Tampering'. They're all alike. But did you, in your three-piece psychology and 1950's technobrain, ever take a look behind the eyes of the hacker? Did you ever wonder what made him tick, what forces shaped him, what may have molded him? I am a hacker, enter my world. Mine is a world that begins with school. I'm smarter than most of the other kids, this crap they teach us bores me.

Damn underachiever. They're all alike.

I'm in junior high or high school. I've listened to teachers explain for the fifteenth time how to reduce a fraction. I understand it.

Smith, I didn't show my work. I did it in my head.'

Probably copied it. They're all alike. I made a discovery today. I found a computer. Wait a second, this is cool.

It does what I want it to. If it makes a mistake, it's because I screwed it up. Not because it doesn't like me. Or feels threatened by me. Or thinks I'm a smart ass.

Or doesn't like teaching and shouldn't be here. All he does is play games.

They're all alike. And then it happened. A door opened to a world. Rushing through the phone line like heroin through an addict's veins, an electronic pulse is sent out, a refuge from the day-to-day incompetencies is sought. A board is found.

This is where I belong.' I know everyone here.

Even if I've never met them, never talked to them, may never hear from them again. I know you all. Tying up the phone line again. They're all alike. You bet your ass we're all alike. We've been spoon-fed baby food at school when we hungered for steak. The bits of meat that you did let slip through were pre-chewed and tasteless.

We've been dominated by sadists, or ignored by the apathetic. The few that had something to teach found us willing pupils, but those few are like drops of water in the desert. This is our world now.

The world of the electron and the switch, the beauty of the baud. We make use of a service already existing without paying for what could be dirt-cheap if it wasn't run by profiteering gluttons, and you call us criminals.

And you call us criminals. We seek after knowledge. And you call us criminals. We exist without skin color, without nationality, without religious bias.

And you call us criminals. You build atomic bombs, you wage wars, you murder, cheat, and lie to us and try to make us believe it's for our own good, yet we're the criminals. Yes, I am a criminal. My crime is that of curiosity. My crime is that of judging people by what they say and think, not what they look like. My crime is that of outsmarting you, something that you will never forgive me for. I am a hacker, and this is my manifesto.

You may stop this individual, but you can't stop us all. After all, we're all alike. Basically - There are four types of people commenting on this: 1) Perl Zealots 2) Python Zealots 3) Wannabe Hackers (Wannabe Coders - to avoid confusion) 4) Wannabe Crackers. First of all - for (1) and (2): -------------------------------- Unless you program in both langauges fluently you shouldn't really be comparing readablility and certainly not flaming either of them. I don't know perl so I am not going to compare the specifics in either langauge; but what I can tell you is that most large perl programs I have used on linux have had a LOT of bugs in them (and believe me when I say I am VERY good at finding bugs) so far, I don't think ANY perl program or script has lasted more than 5 minutes of me tweaking options before it has crashed and forced me to try and debug it. On the contrary, most python programs and scripts I have used do NOT crash within 5 minutes and even the badly written ones usually last me around about 10 minutes before I find something that breaks the program.

Those are just from a users perspective although I admit that I am probably going to be slightly biased perhaps and maybe the more robust python programs are just dependent on what they are used for. The other difference between perl and python from a user perspective is the speed.

Perl FEELS slower than python - feel free to prove me wrong on this one though - if you can - but don't bother unless you can either program both fluently as said or you get the statistics off of another source which is UNBIASED. No comment on perl here - but in general, I have found python to be a lot more readable than any of the natural based langauges I have ever tried to read or code in simply BECAUSE of the strict formatting and coding style which in fact only really has ONE rule - that any line ending with a ':' requires the next line at least to be indented with a 'TAB' for it to work correctly. For (3): --------- If you are wanting to learn a langauge to use it for something productive like creating useful file convertors and especially for programs with a nice GUI - in fact, for ANYTHING user orientated. I thoughroughly recommend python since it is VERY easy to pick up (I mean it - it took me about 2 days to know almost all of it without even touching a 'users guide' or 'reference manual' but just by reading other peoples source code and trying to modify it to fullfil my own needs) and is also quick, makes nice GUI's and above all, you won't spend ages debugging your code.

Able to run without requiring a Python installation' (emphasis mine). Yes, it avoids installing Python on windows - but if Linux has already Python installed anyway, *what real user need* your packing would solve? Open source provides different solutions for similar problems. Proprietary systems are working hard around fact that sources and development environments are not free and widely available.

But it they *are* free and *are* widely available, why waste time developing solution like in proprietary world? So on Linux distro, where Python is already installed: how your py2bin solution would be different from just providing sources?

BTW you are still required to provide sources according to GPL. This topic is a bit old but, can I use Py2exe under Ubuntu? I would like to make a tiny Python script Windows users can run without having to install Python. Is Py2exe working just under Windows, or is it possible to generate a.exe file on my system too?

'A tiny python script' with py2exe? It will be anything but tiny if you do that. If they are using an HP or Compaq, they likely have Python installed. If they don't, tell them to install the ActivePython version. It is an easy install process.

Is there a way to create executables with python on linux? I've used py2exe on windows and I'm looking for something similar. I've heard of something called 'freeze.py' that supposedly does this but I can't find it anywhere on my system.

I had the same problem. Freeze.py is somewhere in (if i remember right /usr/libs or something. But you need to install python examples first. Try cx_freeze. It's better than the normal Python freeze.py, I think. It looks like it may also be able to make Windows executables.

I have some answers for those who wonder why you'd want to do this: Well, Python isn't the only dependency for many Python programs. Sometimes you need something that isn't easy to get on a particular distribution of Linux in the first place (there's not always a download location for what you need, other than the source code). And, expecting the user to compile a bunch of stuff to get it working isn't always ideal (especially if no one is actually known to have done it other than you).

Sometimes the file size for the download is enormous compared with what you actually need out of that download. Plus, you may want to go the commercial route, for some odd reason, and hide your code. I have a question that is relative to this subject.

As mentioned earlier, when creating windows executables the result is quite a large file. I was trying to find a way for the newly created executable to look in PATH for the python dll (and other dlls), instead of the.exe's directory or within the.exe itself. Here is what I do: Copy python25.dll to C: Windows Create my executable making sure to exclude python25.dll But I can't get my executable to point to C: Windows python25.dll, so I just end up with an error that says 'LoadLibrary(pythondll) failed'. Does anyone know how I can do this?