[Scribus] Required Versions of tkinter and python-imaging?

Craig Ringer craig
Thu Nov 17 18:49:53 CET 2005


Taj Morton wrote:

>On 11/17/05, Craig Ringer <craig at postnewspapers.com.au> wrote:
>  
>
>>Both tools are used by the supplied Python scripts. The Python interface
>>its self does not require them, nor does the core application.
>>    
>>
>Are these dependencies at compile-time or at runtime? E.g., if Python
>isn't available at compile time, will the binary use Python on a
>computer with Python, or will I need to recompile Scribus? What about
>TKinter or python-imaging?
>  
>
The dependency on Python is at compile time but only applies to a plugin 
not the main app; the requirement for Tkinter and Python-imaging is at 
runtime only. If you've built Scribus on a system with Python, then run 
it on a system without, Scribus will gracefully ignore the Python 
support (it'll whine on the console when it fails to load the plugin, 
but that's it) and go on with life. The only user-visible difference 
will be a missing "Script" menu and Python preferences panel.

>>Are you planning on shipping your own copy of Python?
>>    
>>
>I wasn't planning on it...would that be a good idea, though?
>
If you can possibly avoid it, you probably should. If you bundle your 
own, the user won't be able to use third party Python modules installed 
on their system, such as PyQt, and you'd have to bundle Tkinter (and 
possibly Tcl and Tk). Yuck. Huge, and ugly.

The problem with relying on the system Python is that Python's soname is 
incremented with each minor release. The language is very backwards 
compatible, as is the library API, but the library ABI is not. Given 
this, a user with Python 2.4 will be unable to use the Python embedding 
support if the Python plugin was compiled against Python 2.3 . The only 
way I can think of to work around this is to build _two_ copies of the 
Python plugin, one against 2.3 and one against 2.4 . This would require 
some serious autohell-fu or manual build hacking, require you to 
parallel-install two versions of Python, and still wouldn't help users 
with 2.2 or 2.5 when it comes out.

My suggestion would be to build against 2.4 and document the fact that 
Python support in Scribus will be unavailable without a local install of 
Python . Similarly, I'd tell the user that they must install 
python-imaging and Tkinter to get full functionality out of the bundled 
scripts.

--
Craig Ringer




More information about the scribus mailing list