InstallMacosx - butscher/WikidPad GitHub Wiki
'''Instructions:'''
Using version 2.8 of wxPython and version 2.3beta13_01 of WikidPad.
1) Download wxPython from https://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.0/ BR - I used wxPython2.8-osx-unicode-2.8.12.0-universal-py2.7.dmg
2) Change security on your mac to installs from all developers. You get a weird message saying that the package doesn't exist if you don't.
3) The wxPython installer package now runs a little further before failing with another weird error to the same effect: ''The Installer could not install the software because there was no software found to install.''
This apparently happens because wxPython is using a legacy script, and the bundled installers were deprecated and are (as of El Capitan release) unsupported. The solution was found on the following stack-overflow page: http://stackoverflow.com/questions/34402303/install-wxpython-in-osx-10-11
I'll repeat the instructions here. Use the name of your wxPython file in place of wxPython-ABC below (for the file we chose above replace wxPython-ABC with wxPython2.8-osx-unicode-2.8.12.0-universal-py2.7)
3.0) Let's assume that you have already mounted the dmg and you have moved the pkg folder to a working folder /repack_wxpython.
cd ~/repack_wxpython cp -r /Volumes/wxPython/wxPython-ABC.pkg .
3.1) Use the pax utility to extract the payload file (pax.gz) from Contents/Resources to a folder that will become the root of your new package.
mkdir pkg_root cd pkg_root pax -f ../wxPython-ABC.pkg/Contents/Resources/wxPython-ABC.pax.gz -z -r cd ..
3.2) Rename the bundle's preflight/postflight scripts, to preinstall/postinstall scripts, as required for flat packages, in a scripts folder.
mkdir scripts cp wxPython-ABC.pkg/Contents/Resources/preflight scripts/preinstall cp wxPython-ABC.pkg/Contents/Resources/postflight scripts/postinstall
3.3) Create the flat package using the pkgbuild tool:
pkgbuild --root ./pkg_root --scripts ./scripts --identifier com.wxwidgets.wxpython wxPython-ABC-output.pkg
4) Once that is complete, install wxPython from the new output package. If you use the version I did, that will be wxPython2.8-osx-unicode-universal-py2.7-output.pkg. Finally, wxPython should install
5) Now, download WikidPad source from http://wikidpad.sourceforge.net/. The direct link for the version I used is http://downloads.sourceforge.net/wikidpad/WikidPad-2.3beta13_01-src.zip
6) Run WikidPad from source: cd to directory where you unzipped the source, and launch WikidPad
cd ~/apps/wikidpad/WikidPad23 arch -i386 python2.7 WikidPad.py
7) At this stage I got a python error from wxPython:
File "/usr/local/lib/wxPython-unicode-2.8.12.0/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core.py", line 3917, in Bind assert callable(handler) AssertionError
8) Instead of tracking this down properly, I used a temporary fix by commenting out the assert: - open "/usr/local/lib/wxPython-unicode-2.8.12.0/lib/python2.7/site-packages/wx-2.8-mac-unicode/wx/_core.py", line 3917 - comment out line 3917
# assert callable(handler)
This seems to be working fine.
9) Wikidpad opens and runs! .. but will only work on wikis using the Gadfly db - No SQLite wikis run. I saw the following error when trying to open my wiki:BR ''ERROR: required data handler "original_sqlite" unknown to WikidPad''
10) To fix this, I had to use homebrew to install sqlite3 with universal support:
brew install sqlite3 --universal
11) Then soft link the sqlite3 dynamic library into the WikidPad source folder
cd ~/apps/wikidpad/WikidPad23/ sudo ln -s /usr/lib/libsqlite3.dylib libsqlite3.0.dylib
12) Try running again from source ....
cd ~/apps/wikidpad/WikidPad23 arch -i386 python2.7 WikidPad.py
... and WikidPad should launch fine now and open sqlite wikis.
After upgrading to MacOS 10.9 (Mavericks), an error "ImportError: cannot import name mbcs_encode" prevented Wikidpad from loading. Changing line 59 from 'if isOSX():' to 'if True:' in /usr/local/share/wikidpad/lib/pwiki/StringOps.py (version 2.3 beta 11) fixed the problem. This was with Python 2.7 from Macports, and wxWidgets 2.8.
I am still using the installation which I did with the instruction below on MacOS 10.9.
Also I updated it to WikidPad 2.3 beta 11. I just exchanged everything in the source folder ('/bin-install/WikidPad-2.2beta05-src') with the new source.
I have created a shell script which will automate the process of downloading and installing wikidpad (and suitable versions of Python and wxPython) and installing an Automator app that "App-ifies" the wikidpad installation so you can run it just like any other app (and open .wiki) files via the app.
The shell script is attached to this page. Direct link is here attachment:wikidpad-2.2beta05-osx10.6-install-script.bash
My advice is to download the script and examine the contents to ensure it is to your liking (and no evil person has changed the script since I attached it and added malicious content). However, for the brave, you can download and execute the script in one step by opening Terminal and entering the following command on the command line:
curl 'http://trac.wikidpad2.webfactional.com/raw-attachment/wiki/InstallMacosx/wikidpad-2.2beta05-osx10.6-install-script.bash' | bash -e
The script has lots of potential for improvement both in terms of ease-of-use, safety (e.g. it would be better if it warned users if they were trying to apply this script on a version of OSX that it may not work on) and future update-ability. Contributions welcome.
This script also automates the installation of an Automator script that I knocked up to App-ify the above installation of wikidpad. It just contains a bash script to execute the 32bit version of the python interpreter installed as part of the previously mentioned script and run the wikidpad python code. It is attached to this page here: attachment:wikidpad-2.2beta05.app.zip. If you want to see what the script does, just download that zip file, unzip it, and open the app in Automator.
I hope this helps, or at least provides a useful starting point for people to both learn more about the wonderful world of scripting and wikidpad.
You can contact me at level323 at theinsideworld d0t net.
There is a version of installation instructions for those who do not want to mess around with the command line. It can be found [InstallMacosxSimple here].
Python runs by default in 64-bit mode on Snow Leopard, however wxWidgets which is required for WikidPad only works in 32-bit mode at this time. Execute this command in a terminal to run Python in 32-bit mode:
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
With this change, Wikidpad appears to work with the Apple-default version of Python - wxWigets installation is not required
In response to requests from Mac users who are newbies to the "Terminal", here is some updated instructions on installing wikidpad under Mac OSX. This time I'll go into a little more detail for Terminal newbies. I hope it's enough.
The irony with these instructions is this: in order to make the instructions simple and universal, I've had to make more use of the Terminal. I encourage you Mac-o-philes to become familiar with the command line. Here is just one (of many) tutorials on scripting (using the 'bash' shell interpreter - as used in OSX) [http://steve-parker.org/sh/sh.shtml]
Introductory notes:
- This procedure will install wikidpad source code in a folder directly underneath a folder called 'bin' in your home folder. If you're experienced enough with the command line you should be easily able to change this to suit your own preferences.
- This procedure worked on my system, which is a !MacBook Pro running OSX 10.5.1 (Leopard)
- Wikidpad requires the following software to be installed and functional:
- The Python scripting language, and
- The wxWindows windowing toolkit with associated bindings for Python (together, called wxPython)
- If you already have a fairly recent version of Python for mac installed then either skip the python installation section of this guide or uninstall it first. The same goes for wxPython. If you're a newbie, I'd recommend you opt to remove any existing installations of Python for mac and wxPython (other than the python installation built in to OSX, of course).
- OSX Leopard has a recent version of Python built-in, but I chose the 'safe' approach of installing a separate copy of Python so as to avoid messing with (read: inadvertently breaking) the built-in version of Python, which could result in breaking OSX altogether. This approach also has the side benefit that it *should* work equally well for OSX 10.4.x (Tiger), which also came with Python built in, but a version that was too old for wikidpad.
- For Terminal newbies: In my instructions below I instruct you to issue certain commands. For example, when I instruct you to issue the following command in the Terminal:
cd ~/bin
What this means is you should type the above text into the Terminal, one line at a time, hitting the ENTER/RETURN key after each line (which instructs the Terminal to execute the command on that line). In OSX's Terminal (and in many equivalents), copy (Apple-C) and paste (Apple-V) can be used to save on typing time and transcription errors.
PROCEDURE (feel free to update/improve it - after all, this is a wiki):
- Open Mac OS X's Terminal, which can be found in /Applications/Utilities/Terminal.app. Alternatively, you could use a third party terminal emulator such as iTerm.
- Download Python for OSX (at time of writing, it was version 2.5.1), by issuing these commands in the terminal:
cd ~/Desktop curl -C - -O http://www.python.org/ftp/python/2.5.1/python-2.5.1-macosx.dmg
- For the newbies: The first command ('cd') changed the current (or 'active') folder/directory (in the Terminal session only) to your Desktop. The second command used the 'curl' unix tool to download the Python 2.5.1 mac universal disk image to the current folder (the Desktop). If you open Finder and use it to browse your Desktop, you should see the file python-2.5.1-macosx.dmg there. Also, note that '' means "my home folder" in 'bash' shell script language.
- Mount the python-2.5.1-macosx.dmg disk image. This can be done by either:
- Opening Finder and double-clicking on the python-2.5.1-macosx.dmg to mount the disk image, OR
- Issue the this command in the terminal:
hdiutil attach python-2.5.1-macosx.dmg
- Run the !MacPython installer in the disk image. You can achieve this by either:
- Double-clicking on the MacPython.mpkg file in Finder, OR
- Issuing this command in the terminal:
open -a Installer.app "/Volumes/Universal MacPython 2.5.1/MacPython.mpkg"
- Follow through the normal installer procedure. If you were a stickler for proper procedure, you would also have viewed the ReadMe.txt file in the disk image, and noted (among other things) that you must specify your boot disk as the install location for Python otherwise it won't work.
- Unmount (eject) the disk image. This can be done by either:
- Clicking on the "eject" icon next to the disk image in Finder, OR
- Issue the this command in the terminal:
hdiutil detach "/Volumes/Universal MacPython 2.5.1"
- Quit the Terminal. This is required because the Python installation may change some PATH settings etc.
- Restart the Terminal.
- Confirm that the 'python' command is running the copy of python we just installed (and not the copy built-in to OSX). This can be achieved by issuing the following command in the terminal:
which python
- The correct response should be /Library/Frameworks/Python.framework/Versions/Current/bin/python or /usr/local/bin/python.
- HOWEVER, if the response is /usr/bin/python then the incorrect (built in) version of python is being used and you should not proceed any further with these instructions (unless you want to risk changing OSX's built-in python system). TRY closing the terminal application, and reopening to refresh the terminal--then repeat the above step to see if the correct response is given.
- Download wxPython to the Desktop (version 2.8.7.1 unicode variant at time of writing), by issuing the following commands:
cd ~/Desktop curl -C - -O http://internap.dl.sourceforge.net/sourceforge/wxpython/wxPython2.8-osx-unicode-2.8.7.1-universal-py2.5.dmg
- Mount the wxPython disk image that was just downloaded, by issuing the command:
hdiutil attach wxPython2.8-osx-unicode-2.8.7.1-universal-py2.5.dmg
- Run the MacPython installer in the disk image. You can achieve this by either:
- Double-clicking on the MacPython.mpkg file in Finder, OR
- Issuing this command in the terminal:
open -a Installer.app "/Volumes/wxPython2.8-osx-unicode-2.8.7.1-universal-py2.5/wxPython2.8-osx-unicode-universal-py2.5.pkg"
- Follow through the normal installer procedure.
- For completeness, you can unmount (eject) the disk image by issuing the command:
hdiutil detach "/Volumes/wxPython2.8-osx-unicode-2.8.7.1-universal-py2.5"
- Download the wikidpad source code (it comes as a zip file) and expand it into a sensible place, using the following sequence:
- Create the folder 'bin' under your home folder, by issuing the command:
mkdir ~/bin mkdir ~/bin/wikidpad
- If you already have folders by those names, the command will respond with an error like mkdir: /Users/jwclark/bin: File exists, which you can safely ignore.
- Move into the new folder and download the wikidpad source code there, by issuing the commands:
cd ~/bin/wikidpad curl -C - -O http://www.jhorman.org/wikidPad/WikidPad-1.9beta15-src.zip
- Extract (unzip) the zipfile, by issuing the command:
unzip WikidPad-1.9beta15-src.zip
- At this point you should be able to test-run your wikidpad installation. Start wikidpad by issuing this command in the Terminal:
python WikidPad.py
- If wikidpad does not appear on screen, then there is some problem.
- You may notice some complaints (warnings) issued in the terminal when you execute this command (mostly about icon-related issues). If wikidpad starts anyway, just ignore them.
- I've also created a OSX 'wrapper' application that will run wikidpad and accepts '.wiki' files being dropped onto it to open that wiki.
- It was created using [http://www.sveinbjorn.org/platypus Platypus].
- It REQUIRES that wikidpad source was installed in the folder described above (/bin/wikidpad). If you installed wikidpad somewhere else, this wrapper application won't work.
- I've uploaded the app onto this wiki. Download it [http://wikidpad.python-hosting.com/attachment/wiki/InstallMacosx/wikidPad.app.zip?rev=&format=raw here], unzip it and copy it into your Applications folder. If you double click on this icon, wikidpad should start. Alternatively, you can double click on the root .wiki file in an existing wiki and wikidpad will start and load the specified wiki.
- If double-clicking on the wikidPad.app wrapper successfully starts wikidpad, but clicking on a .wiki file doesn't start wikidpad, then you can probably fix this by:
- Right-clicking (or Ctrl-left click) on the .wiki file and choose "Get Info"
- Go down to the "Open With" section and choose wikidPad.app
- Check the button "Change all" just below it.
- You are done!
Notes:
- Being a python application, there should be no reason why these instructions couldn't also be adapted for PowerPC-based Macs.
- Avoid using the quick-search box in wikidpad. Once the results of the search are displayed, there is no way to dismiss/hide the results other than closing and restarting wikidpad.
- For the purpose of reproducibility, a brief rundown of how the wrapper app was created in platypus is as follows:
- Platypus executes a shell script, as follows:
(ignore this line of text - it is here to get around a Trac Wiki processing feature/bug) #!/bin/bash shift cd ~/bin/wikidpad /usr/local/bin/python ~/bin/wikidpad/WikidPad.py "$@" &
- Output: None
- Interpreter: /bin/bash
- Version: 1.0
- Signature: ????
- Identifier: org.wikidpad.wikidPad
- Requires administrator privileges: unchecked
- Secure bundled script: unchecked
- Is droppable: checked. Suffixes: wiki
- Runs in background: checked
- Remain running after completion: unchecked.
As you can probably tell, I've gone to quite a bit of effort to make this a newbie-friendly process. I don't have much spare time, but if you're having problems you can try your luck emailing me at: level323 at theinsideworld dot net.
I modified the Platypus wrapper above so that it can run Wikidpad from source files located inside the bundle. Download the modified wrapper [http://wikidpad.python-hosting.com/attachment/wiki/InstallMacosx/wikidPad.app-requires-bundled-sources.zip?rev=&format=raw here]. After you have downloaded and unzipped the wrapper, you still need to do the following:
- Right-click the wrapper's application bundle (should be named wikidPad.app) in the Finder, then select "Show package contents". This opens a new Finder window that lets you browse the insides of the application bundle
- Navigate to the Contents -> Resources folder
- Copy the folder that contains the Wikidpad sources into the Resources folder; you may already have such a folder at /bin/wikidpad, otherwise download and unzip the sources separately
- Rename the sources folder to "wikidpad" (unless, of course, it is already named like that)
- Close the Finder window
- Voilà, the application bundle is now self-contained and you no longer need /bin/wikidpad
- Note: I tested this with Wikidpad 1.9c02 on a Mac OS X 10.5.6 PPC machine, using the Python interpreter provided by the system (2.5.1)
The only change I made to the original wrapper was replacing the shell script inside the wrapper (located in Contents/Resources/script). The new shell script does the following things differently:
- The original script expected to find the Wikidpad sources in /wikidpad. The new script locates the "wikidpad" folder within the bundle.
- The original script expected to find the Python interpreter in a hard-coded location (/usr/local/bin). The new script tries multiple locations to find a Python interpreter that is capable of running Wikidpad
- The new script assumes that a Python interpreter must have at least version 2.5.x to be able to run Wikidpad. If this assumption is not correct, the script can be easily modified in any text editor.
- The new script looks in the following locations for suitable Python interpreters
- The first location in the environment variable PATH that contains a Python interpreter. This allows you to permanently modify your environment so that it points to any custom Python interpreter.
- /usr/bin. This points to the interpreter provided by the system (Mac OS X).
- /Library/Frameworks/Python.framework/Versions/*/bin. MacPython installs its files there. The "Current" version (/Library/Frameworks/Python.framework/Versions/Current/bin) is tried before any of the other versions.
- /usr/local/bin. MacPython used to install binaries there. For Python 3.0.x, however, this is no longer true (unless the user explicitly requested this during installation)
- /sw/bin. The location where the Fink project usually installs its stuff
- The locations are scanned in the listed order. The first interpreter found is used to launch Wikidpad.
If you experience problems, you might try to modify the shell script. I have tried to document it so that you don't need to be a shell script guru to change certain things (e.g. you should be able to fiddle with the order in which locations are searched for Python interpreters; you should also be able to change the minimum requirements for a Python interpreter to something different than 2.5.x). If in dire need, I can be contacted at herzbube at herzbube dot ch.
'''How to use Sqlite in MacOSX'''
Note that from 1.9beta15 Michael has integrated Wikidpad Sqlite support for MacOSX so you don't have to change anything.
You need to change the file ''lib/pwiki/SqliteThin3.py'' with !TextEdit or an editor of you choice.
Add this function just below the isLinux() func near line 61:
#!python def isDarwin(): """ Return if working on Darwin system """ try: return os.uname()[0] == "Darwin" except AttributeError: return False
and near line 100 change this piece of code:
#!python if isLinux(): import platform pyver = tuple((int(s) for s in platform.python_version_tuple())) if pyver >= (2, 5, 0): _dll = CDLL("libsqlite3.so.0") else: _dll = CDLL("libsqlite3.so") else: _dll = cdll.sqlite3
with this one:
#!python if isLinux(): import platform pyver = tuple((int(s) for s in platform.python_version_tuple())) if pyver >= (2, 5, 0): _dll = CDLL("libsqlite3.so.0") else: _dll = CDLL("libsqlite3.so") elif isDarwin(): _dll = CDLL("libsqlite3.0.dylib") else: _dll = cdll.sqlite3
Now you should be able to use sqlite.
'''To fix problem of Command-Q being overloaded to take you to the homepage instead of quitting.''BR Using !TextEdit, modify extensions/!KeyBindings.py. Change !GoHome to be Ctrl-Shift-H.
'''To create a double clickable app to launch wikidpad''BR Using !TextEdit create a file called wikidpad.sh that contains these three lines (assuming you put your wikidpad folder in <your user directory>/bin:)BR
[Here you may have to launch Terminal.app, navigate to the directory containing wikipad.sh, and enter this:BR chmod a+x wikdpad.shBR This makes that file executable in unix.]
Using automator, create a two step process.BR 1. First, click on Finder in the far left and choose Get Specified Finder Items and locate your wikipad.sh file 2. Your second step is to click Finder, then Open Finder Items as the action, and choose Terminal.app as the Open with program. (Terminal.app is located in /Applications/utilities 3. Now that you have those two steps on the right side of Automator, choose Save As... and choose type Application. Now you have an app with which to launch wikidpad.
The good news is that I got wikidpad 1.9beta8 to work very easily on OSX 10.4.10 without any modifications to the source code. Congratulations to Michael and the other coders for continually improving the cross-platform issues with wikidpad. It really is a great piece of software.
The following installation procedure worked for me:
- Download and install Python 2.5 Mac universal binary from [http://www.python.org/ftp/python/2.5.1/python-2.5.1-macosx.dmg] (this was the latest version at time of writing but future versions will probably work too)
- Close Terminal (if it's already running) and restart it (so that any PATH changes since installing Python get recognised) and run 'python -V' and verify that the system is defaulting to the version of Python we just installed (and not the version built into OSX).
- Download and install wxPython Mac universal binary (unicode edition) to suit the above version of Python. In my case that was [http://internap.dl.sourceforge.net/sourceforge/wxpython/wxPython2.8-osx-unicode-2.8.4.0-universal10.4-py2.5.dmg]
- Download wikidpad 1.9beta8 from here: [http://www.jhorman.org/wikidPad/WikidPad-1.9beta8-src.zip]
- Extract the wikidpad ZIP file to the folder of your choice
- Open up a Terminal window and 'cd' (change directory) to the root of the wikidpad source tree (where WikidPad.py is located) and run 'python WikidPad.py'
It should 'just work'
You will see errors reported in the Terminal output about problems with icons (as Alex van Lil mentions below). These can just be ignored.
Any questions/comments about the above instructions can be emailed to ( level323 at theinsideworld dot net )
Credits to Alex for his previous notes on installing wikidpad in OSX, upon which I based my work.
At the time of this writing, support for Universal binaries for Python and wxPython is still preliminary, however this seems to be enough to get WikidPad working.
- Note that I have a full Xcode 2.2 installed on my machine. I don't know if this makes a difference.
- download and install Universal Python as found on python.org. I used this one: http://www.python.org/ftp/python/2.4.3/Universal-MacPython-2.4.3-2006-04-07.dmg
- download and install Universal wxPython, taking care that it matches the Python you have just installed. I used: http://prdownloads.sourceforge.net/wxpython/wxPython2.6-osx-unicode-2.6.3.2rc2-universal10.4-py2.4.dmg
- open a terminal, cd to source code
- check that the python that is called is really the one you just installed. This should be ok as the installer has normally taken care of changing your path.
iMac:~/Desktop/WikidPad-1.6rc2-src jess$ python Python 2.4.3 (#1, Apr 7 2006, 10:54:33) [GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
- there is a problem with line termination characters (CRLF vs LF), so you have apply a small patch to the sources: in 'lib/pwiki/PersonalWikiFrame.py', add the following line just before the "exec code in module.__dict__" line (located near the end of the file):
code = code.replace('\r', '')
Or change "exec code in module.__dict__" with:
exec code.replace('\r', '') in module.__dict__
- finally, simply launch
python WikidPad.py
The above instructions didn't work for me, I ended up with errors (e.g. 'ImportError: cannot import name wxPlatformInfo').
I have WikiPad 1.7 stable now up and running on my Apple iMac, running OSX 10.4.10. Please excuse any wrong descriptions regarding Python as I have zero knowledge about that language (being a Java developer for more than 8 years now).
BUT, It works and I'd like to describe how.
- Download wikipad 1.7 stable source distribution, unzip
- Download and install
- Python 2.4.4 for Mac [http://www.pythonmac.org/packages/py24-fat/dmg/python-2.4.4-macosx2006-10-18.dmg]
- wxPython 2.6 Unicode for Python 2.4.4 [http://www.pythonmac.org/packages/py24-fat/dmg/wxPython2.6-osx-unicode-2.6.3.3-universal10.4-py2.4.dmg]
- Close any open terminal windows to ensure that from now on you'll be working with the installed python 2.4.4
- Verify python 2.4.4 installations via
~/Desktop/Downloads/WikidPad-1.7-src $ python -V Python 2.4.4
- Apply the instructions above to patch the file '''lib/pwiki/PersonalWikiFrame.py''' (just search for __dict__ in that file), e.g.:
code = code.replace('\r', '') exec code in module.__dict__
- The class wxPlatformInfo seems to not be part of the wxPython distribution installed above, we need to remove some dependencies, open '''Configuration.py''' in the same directory
- Modify the import at the beginning of the file, remove wxPlatformInfo
import codecs from wxPython.wx import wxGetOsVersion
- Edit two defined funtions in the same source using wxPlatformInfo
# Placed here to avoid circular dependency with StringOps def isUnicode(): """ Return if GUI is in unicode mode """ return True def isOSX(): """ Return if working on Mac OSX """ return 1 << 7
- Now you should already be able to start Wikipad (with an error message regarding icons, ignore that for now)
~/Desktop/Downloads/WikidPad-1.7-src $ pythonw WikidPad.py
- Some stuff won't work like Apple-Q to quit, most stuff I tested worked fine.
- To remove the error message regarding icons (there seem to be a problem on osx assigning GIF-images to a tree widget), edit '''PersonalWikiFrame.py''', simply remove the error message (the nice tree-icons are missing anyway, no need to pop-up an error-message every time)
try: tree.AssignImageList(cloneImageList(self.iconImageList)) except Exception, e: traceback.print_exc() # self.displayErrorMessage('There was an error loading the icons ' # 'for the tree control.', e)
Finally you should have a nice wikipad up and running on OSX, [http://www.vanlil.de/images/wikipad.png Screenshot]
Comments to: Axel.vanLil*AT*LMIS.de (replace *AT* with @).
The above instructions didn't work for me, I ended up with errors (e.g. 'ImportError: cannot import name wxPlatformInfo').
I have WikiPad 1.7 stable now up and running on my Apple iMac, running OSX 10.4.10. Please excuse any wrong descriptions regarding Python as I have zero knowledge about that language (being a Java developer for more than 8 years now).
BUT, It works and I'd like to describe how.
- Download wikipad 1.7 stable source distribution, unzip
- Download and install
- Python 2.4.4 for Mac [http://www.pythonmac.org/packages/py24-fat/dmg/python-2.4.4-macosx2006-10-18.dmg]
- wxPython 2.6 Unicode for Python 2.4.4 [http://www.pythonmac.org/packages/py24-fat/dmg/wxPython2.6-osx-unicode-2.6.3.3-universal10.4-py2.4.dmg]
- Close any open terminal windows to ensure that from now on you'll be working with the installed python 2.4.4
- Verify python 2.4.4 installations via
~/Desktop/Downloads/WikidPad-1.7-src $ python -V Python 2.4.4
- Apply the instructions above to patch the file '''lib/pwiki/PersonalWikiFrame.py''' (just search for __dict__ in that file), e.g.:
code = code.replace('\r', '') exec code in module.__dict__
- The class wxPlatformInfo seems to not be part of the wxPython distribution installed above, we need to remove some dependencies, open '''Configuration.py''' in the same directory
- Modify the import at the beginning of the file, remove wxPlatformInfo
import codecs from wxPython.wx import wxGetOsVersion
- Edit two defined funtions in the same source using wxPlatformInfo
# Placed here to avoid circular dependency with StringOps def isUnicode(): """ Return if GUI is in unicode mode """ return True def isOSX(): """ Return if working on Mac OSX """ return 1 << 7
- Now you should already be able to start Wikipad (with an error message regarding icons, ignore that for now)
~/Desktop/Downloads/WikidPad-1.7-src $ pythonw WikidPad.py
- Some stuff won't work like Apple-Q to quit, most stuff I tested worked fine.
- To remove the error message regarding icons (there seem to be a problem on osx assigning GIF-images to a tree widget), edit '''PersonalWikiFrame.py''', simply remove the error message (the nice tree-icons are missing anyway, no need to pop-up an error-message every time)
try: tree.AssignImageList(cloneImageList(self.iconImageList)) except Exception, e: traceback.print_exc() # self.displayErrorMessage('There was an error loading the icons ' # 'for the tree control.', e)
Finally you should have a nice wikipad up and running on OSX, [http://www.vanlil.de/images/wikipad.png Screenshot]
Comments to: Axel.vanLil*AT*LMIS.de (replace *AT* with @).
The current development version (maybe 1.20beta?) does work on Mac OS X:
- Install python 2.4.1 and wxPython 2.6.1
- Install with the binary installers from their websites
It works mostly, but using "international characters" like u etc, can crash the program, apparantly the wxSTC stuff is not really stable.
--
It took me a while to get it to work, however I have indeed successfully gotten the current "Release" from source (as linked on the main page) to start up on OX 10.3. Steps to reproduce should hopefully be:
As stated above install python 2.4.1, however use the binary build from undefined.org ( http://undefined.org/python/MacPython-OSX-2.4.1-1.dmg ). I originally had python 2.4 installed via fink, and after that also tryed to build the official source from python.org. Neither prooved to be successfull (though it might work if you build from source as framework - see the Mac README on how to do that - I only noticed it too late unfortunately to try it, and now am basically just happy it works ;) )
Next, install wxPython 2.6.1 from http://wxpython.org/download.php#binaries , of course get the OSX installer for 2.4 ( I used the unicode build ) ( http://prdownloads.sourceforge.net/wxpython/wxPython2.6-osx-unicode-2.6.1.0-macosx10.3-py2.4.dmg ). I finally wound up uninstalling all previous Versions of wxPython, however as long as its a Version which supports MultiVersions ist should theoretically not pose a problem.
Now to launch wikidPad I needed to call it with some extra 'options'. Change to the dir where you unpacked the sources to, and then issue the following command ( I got some inspiration from the InstallLinux Page ):
$ PYTHONPATH=lib pythonw2.4 WikidPad.py
The two tricks here are to lauch it telling it to use pwiki from the lib directory, otherwise it fails complaining a lack of it. And the second trick is using python2.4 rather than the system default 2.3, and of course pythonw since its a GUI app. If I run into any more trouble I might be posting back here if I find a solution ;-)
- I tried to everything stated and got...
app = App(0) File "lib/pwiki/MainApp.py", line 144, in __init__ wx.App.__init__(self, *args, kwargs) File "Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/wx-2.6-mac-unicode/wx/_core.py", line 7700, in __init__ File "Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/wx-2.6-mac-unicode/wx/_core.py", line 7352, in _BootstrapApp File "lib/pwiki/MainApp.py", line 344, in OnInit self.startPersonalWikiFrame(CmdLineAction(sys.argv[1:])) File "lib/pwiki/MainApp.py", line 405, in startPersonalWikiFrame self.globalConfigDir, self.globalConfigSubDir, clAction) File "lib/pwiki/PersonalWikiFrame.py", line 235, in __init__ self.loadExtensions() File "lib/pwiki/PersonalWikiFrame.py", line 382, in loadExtensions self.wikiSyntax = self.getExtension('SyntaxLibrary', u'WikiSyntax.py') File "lib/pwiki/PersonalWikiFrame.py", line 415, in getExtension extensionName) File "lib/pwiki/PersonalWikiFrame.py", line 4646, in importCode exec code in module.__dict__ File "<string>", line 133, in ? File "lib/pwiki/StringOps.py", line 97, in mbcsDec return _mbcsDec(input, errors) File "/Library/Frameworks/Python.framework/Versions/2.4lib/python2.4/encodings/mac_roman.py", line 22, in decode return codecs.charmap_decode(input,errors,decoding_map) UnicodeDecodeError: 'charmap' codec can't decode byte 0xf0 in position 46: character maps to <undefined> OnInit returned false, exiting...