I get this TypeError message
It looks like this:
Traceback (most recent call last): File "/usr/share/solfege/solfege/startup.py", line 160, in start_gui solfege.win.load_frontpage() File "/usr/share/solfege/solfege/mainwin.py", line 206, in load_frontpage self.display_frontpage() File "/usr/share/solfege/solfege/mainwin.py", line 616, in display_frontpage self.get_view().display_data(data, show_topics=show_topics) File "/usr/share/solfege/solfege/esel.py", line 332, in display_data show_topics) File "/usr/share/solfege/solfege/esel.py", line 270, in _display_data self.adjust_scrolledwin_size() File "/usr/share/solfege/solfege/esel.py", line 126, in adjust_scrolledwin_size self.set_size_request(w, h if h > self.m_min_height else self.m_min_height) TypeError: integer argument expected, got float
Answer: Ubuntu 11.10 (oneiric) packaged a buggy devel release of Solfege. You need to upgrade to version 3.20.0 or newer.
The fix is to edit solfege/esel.py and modify line 124, as shown in the patch below:
=== modified file 'solfege/esel.py' --- solfege/esel.py 2011-05-13 07:51:52 +0000 +++ solfege/esel.py 2011-05-14 17:02:46 +0000 @@ -121,7 +121,7 @@ # ubuntu 10.04 and +4 on MS Windows XP. h = self.g_box.size_request() + 4 if h > gtk.gdk.screen_height() * 0.8: - h = gtk.gdk.screen_height() *0.8 + h = int(gtk.gdk.screen_height() *0.8) self.set_size_request(w, h if h > self.m_min_height else self.m_min_height) # Then we check if we have to move the app window higher up on the # screen so that the whole window is visible.
Will there be a version of GNU Solfege on the android market?
Probably not. To be available on android, I will have to rewrite the program in another programming language. Solfege is written in Python, and android programs must be written in Java.
For some time I have been thinking about Scripting Layer for Android, but I don't think it will be possible to write a program that can be downloaded from the market as normal program. Users will have to download the scripting layer first, then setup Python on it, then download Solfege, and to start Solfege, they probably need to start android scripting and then select Solfege to run the program.
Problem starting Solfege on Windows XP/Vista/7/whatever
Do you see error messages similar to any of these?
- The procedure entry point deflateSetHeader could not be located in the dynamic link library zlib1.dll.
- pythonw.exe - Entry Point Not Found The procedure entry point xmlCtxtGetLast Error could not be located in the dynamic link library libxml2.dl
From time to time people email me about this problem. There are different causes of the problem, but often the real problem is that the program is loading another version of a DLL file than the one included in the program. Some things NOT to do trying to solve this:
- Try to google the file name of the DLL mentioned and downloading the file from a random place on the net.
- Installing other versions of Python or Gtk, just to see if it helps. It won't. A working version of Python and Gtk is included in the Solfege installer.
A common cause for this is that Solfege does not install any files into the C:\Windows folder (or below). This is how it can happen:
- You install a program installed that copies an old version, 220.127.116.11, of zlib1.dll into C:\Windows\System32.
- You then install Solfege 3.20. It installs zlib1.dll version 18.104.22.168, but it installs it into C:\Program files\GNU Solfege\bin\.
- You start the program, and Solfege fails because the way things work on Windows, the DLL in C:\Windows\System32 is loaded instead of the file included with Solfege.
The simple way to fix this is to read the error message, figure out which DLL is the problem and copy that DLL from C:\Program files\GNU Solfege\bin\ to C:\Windows\System32. If you do this, make sure you take a backup of the file you overwrite in case it breaks other programs. On Windows XP (and probably the other Windows versions) you can see the version number of the DLL below the file name in the explorer window, or by hoovering the mouse over the file. If this explanation is correct, the file you want to overwrite should be older than the file included with Solfege.