Well I was dreaming of rewriting all these tips as a nice article or
wiki page, but haven't gotten around to it. So I thought I'd share the
raw results. I've gotten several responses since the last time I posted
this. Be sure to read to the bottom because that's where general
comments and tips are located!
Also, I did manage to categorize the products, find their URLs and come
up with one liners to describe them:
http://ChuckEsterbrook.com/wxPython/
Side note: I haven't integrated the C++ responses yet, but basically
users seem split between VC++ 6.0 and mingw.
Collate MS Windows Survey Results:
ToCommand: (18 count)
use:
(18 responses)
12 standard
1 VIM
1 SciTE
1 HAPDebugger
1 cygwin+tcsh
1 cygwin
1 4NT
comments:
(3 responses)
VIM with a customized make script
It's not so bad if the cygwin/bin directory is in the path,
and autocomplete on tab is set in the registry.
I'm looking for alternative..anyone know of a port of Bash
to Windows (not Cygwin)
ToMonitorResources: (18 count)
use:
(8 responses)
8 TaskManager
1 System Calls
1 Strategic Logging
ToDebug: (18 count)
use:
(12 responses)
4 print
3 BoaConstructor
2 WingIDE
1 unittests
1 tracebacks
1 PythonWin
1 PyCrust
1 HAPDebugger
1 emacs+pdb
comments:
(5 responses)
print is usually enough
if I really need to I use the BoaConstrucor debugger
I usually do it with help of Messages or print outs in the
python.exe-window
I use the Message Watcher, Shell, and Namespace Viewer at
runtime with PythonCard apps. I don't use any traditional
stepping, breakpoint tools, I don't even know the Python
debugger commands, thus I've guilty of being a log and print
statement guy with Python
I execute wxPython from C Prompt window and use print
statements for debugging.
Products: (18 count)
wxPython: (18 count)
ver:
(18 responses)
15 2.4.0.7
1 cvs
1 2.4.0.2
1 2.4.0.1 Unicode
1 2.4.0
1 2.4
1 2.3.3
comments:
I keep other versions around for testing. Simply rename the
old packages like wxPython2402 before installing a new one,
then you can rename packages at will to test a specific
release. This is also useful for maintaining
unicode/non-unicode packages.
Python: (18 count)
ver:
(18 responses)
15 2.2.2
2 2.2 ActiveState
1 2.3a2 Mac
1 2.3a2
1 2.3 MacOSX
1 2.3
1 2.2.2 ActiveState
1 2.2
1 2.1.3
1 2.1
comments:
I'm just starting to look at 2.3, but once the beta is out
I'll look at it much more
Windows: (18 count)
ver:
(18 responses)
13 2000
7 XP
3 XP Pro
2 NT
2 98
1 XP Pro SP1
1 Win98 SE
1 ME
1 2000 SP3
1 2000 Pro
comments:
2000 for development; XP and 2000 for testing
PyCrust: (9 count)
pros:
(1 responses)
interactive facilities do seem to be a bit better than
PythonWin's
cons:
(1 responses)
PyCrust doesn't include an editor
wxDesigner: (4 count)
pros:
makes laying out windows and connecting them to events very
easy
cons:
(2 responses)
you can't make changes to the source code and then have it
read those changes back in (so any layout changes are best
done in wxDesigner).
Need easier implementation of user controls, need easier
handling of wxNotebook control
PythonWin: (4 count)
pros:
(2 responses)
Same shortcuts as Visual Studio
PythonWin suits the way I work very well.
I like having convenient access to both file editing and an
interactive interpreter.
Easy to use
cons:
(2 responses)
Stack trace can be hard to read because it wraps.
cannot run/debug wxPython apps from within
Cannot paste from the clipboard into the watch window
After debugging a GUI app, you must exit PythonWin and start
it again if you want to debug that app again.
comments:
(1 responses)
for programatic access to Windows Media Player
BoaConstructor: (4 count)
cons:
Debugger in Boa lacks conditional breakpoints - or at least
I haven't figured out how to do it.
forWhat:
testing only
wxGlade: (4 count)
pros:
(1 responses)
1 love it
cons:
(1 responses)
still under active development
py2exe: (3 count)
use:
create executables
forWhat:
(2 responses)
packing and distribution
create system services as well
SciTE: (3 count)
pros:
(3 responses)
1 I like everything about this program.
1 great editor
1 great
cons:
(2 responses)
1 no debugger
1 lacks a convenient interpreter
McMillanInstaller: (3 count)
forWhat:
create standalone executables
InnoSetup: (3 count)
use:
make installation programs
forWhat:
create install packages
WingIDE: (3 count)
cons:
(2 responses)
purchase price is a little too high for me
no debugging of threads
ctypes: (2 count)
pros:
a great way to make system specific calls to windows
comments:
(1 responses)
to access DLLs and shared libraries
PythonCard: (2 count)
forWhat:
edit code
IDLE: (2 count)
pros:
(1 responses)
1 simple
1 no learning curve
1 does not get in the way
comments:
I am fairly happy with IDLE, but intend to do more with
PyCrust.
XRCed: (2 count)
use:
to build UI
comments:
I love it
win32all: (2 count)
pros:
a very nice interface to the Windows API with constants
included
cygwin: (1 count)
NSISWorkbench: (1 count)
forWhat:
nice GUI front end to NSIS
PepperEditor: (1 count)
pros:
(1 responses)
works on Linux and Mac OS as well
RapidSVN: (1 count)
forWhat:
a wxWindows client to Subversion
DependencyWalker: (1 count)
use:
identify dll dependencies
AdobePhotoshop: (1 count)
forWhat:
for skin graphics
emacs: (1 count)
Putty: (1 count)
NSIS: (1 count)
forWhat:
scriptable installer
EditPlus: (1 count)
pros:
EditPlus can capture output of my program so I run my text
program from inside EditPlus
mxExtensions: (1 count)
Jext: (1 count)
pros:
Quite OK working with Jext
forWhat:
text editing
KINTERBASDB: (1 count)
forWhat:
access to Firebird (via ORM)
TortoiseSVN: (1 count)
forWhat:
a clone of TortoiseCVS wich is a client nicely integrated
with the windows Explorer
Subversion: (1 count)
forWhat:
instead of CVS
TextPad: (1 count)
RuneBladeSkinning: (1 count)
MySQLdb: (1 count)
ObjectRelationalMembrane: (1 count)
aka:
ORM
forWhat:
data access to Firebird
HAPDebugger: (1 count)
pros:
(1 responses)
1 SCINTILLA EDITOR
1 PROJECT MANAGEMENT
1 LIKE MS VC++
1 FAST, NATIVE WINDOWS NOT JAVA
1 EXTRAS: FIND IN FILES
1 CUSTOMIZABLE TOOLS MENU
cons:
(1 responses)
DOWNSIDE: NO CLASS BROWSER BUGGY (HAVEN'T BEEN ABLE TO
FIGURE OUT HOW TO BUILD IT
Comments:
(2 responses)
None. This platform is easier to handle than Linux. Registry
and a unique GUI make things much easier. Under Linux you
have to track several lib versions and take care for those
KDE, GNOME etc. environments. But that doesn't mean, that
Win32 is better ..
Lack of data aware widgets (although I found that basic
widgets/controls such as textctrl, combobox are easily made
data aware through the use of validators, but still like to
see something for e.g. a grid and possibly a listctrl). It
would be nice if wxPython provides them. I understand that
Riaan (Boa developer) has it on his to do list - not sure
how he wants to go about it).
MoreTips:
(7 responses)
Use lots of simple and free tools: Context editor,
InnoSetup, wxGlade, etc.
The wxPython wiki is great.
Dependency Walker is very useful.
Avoid the DOS derivates (95, 98, Me). They are very
unstable.
Usually my biggest platform-specifics are related to
accessing the underlying filesystem -- relative pathnames
can be made cross-platform easily, but fully-qualified
pathnames aren't. I usually hardcode a platform-specific
base pathname, and then use cross-platform tools (os.path)
to modify that base. This means that only one change is
needed to make all pathnames work on a different platform.
Use Samba or WebDAV or even a simple web server, just
something to simplify moving files back and forth between
platforms, but then watch your line endings.
Try not to break the rules of wxWindows abstraction; but if
you must, ctypes and win32all are wonderful ways to get the
job done.
The other thing I have done is to follow the instructions
here
(http://www.windows2000faq.com/articles/index.cfm?articleid=13571)
to add a command in the context menu in explorer that opens
a command prompt and changes to the selected directory.
This is handy because I have development directories
scattered around my PC rather than in one place.
Run from cmd.exe, don't just doubleclick in the GUI.
Make sure you enable autocomplete.
http://contamination.org/windows2000/autocomplete_cmd.html
It is a .reg file, but if you look at it before running it
you'll see it just makes the Tab key the autocomplete
character.
Learn the unix tools and install cygwin.
Init wxApp with 0 to get diagnostics to stdout, or with a
filename to get it to a file. (Then use tail -f I guess.)
If you need to get a debugger into the C++ wxWindows code,
do this: 1) build the Debug version of Python in Visual
Studio 2) execute Python from Visual Studio. 3) from Python,
execute Python app that you wish to debug 4) set break
points and then trigger them from the python app. Note that
the order of 3 & 4 ensures that the wxWindows DLL is loaded
and break points can be set.
I use the command-line cvs tool and putty for SSH. There are
other cvs/ssh solutions for Windows. I like putty in part
because it has a resident agent (Pageant) that keeps me from
having to type passphrases or remember passwords, you type
the passphrase for a key once when you start it and can then
forget it. Since I don't reboot or log off very often it
stays around for weeks or months.
I use plenty of unittests for the logic layer (but not much
for the GUI code). I try to keep the GUI thin, and there are
rarely problems there for me now.
I have made a couple of changes to the environment. I added
.py and .pyw to the "PATHEXT" variable and added the
c:\python22\scripts folder to the PATH variable. This way,
I can enter the name of a python file at the command prompt
and it will run the program.
I guess XP works, but there are licence issues... For
instance I could not install the MS Office 2000 from my
"reseller kit" (which I'm allowed to use five copies of
internally) under XP. "Expired" it said. There was no
expiration date in the deal...
Change PATHEXT http://altis.pycs.net/2002/12/25.html This
also has a link to the codeEditor page which goes into
associating file extensions with Python scripts. That could
probably be better done in generic terms.
Becoming familiar with PythonCOM is very much worthwhile.
Being able to interact with other Windows apps
programmatically has helped me greatly.
18 responses
···
--
Chuck
http://ChuckEsterbrook.com