Thanks again. Macports didn't have the latest pyobjc, but pip updated my installation to the fixed version. Problem solved.

Tim

On 20/03/2015 00:18, michael h wrote:
Did you see this:

https://bitbucket.org/ronaldoussoren/pyobjc/issue/95/attributeerror-in-some-cases-when-checking



On Thu, Mar 19, 2015 at 12:20 PM, Timothy W. Grove <tim_gr...@sil.org <mailto:tim_gr...@sil.org>> wrote:

    A personal reply to my question sent me to the following link:
    
http://stackoverflow.com/questions/23729704/change-osx-keyboard-layoutinput-source-programmatically-via-terminal-or-appl.
    I seem to have found a solution that worked using PyObjC.

    I'm currently using Python 3.3 installed via macports, and I
    installed the appropriate ports for my setup (py33-pyobjc,
    py33-pyobjc-cocoa).

    For my import statement:

        from AppKit import NSTextInputContext

    To find the current keyboard being used:

        ic = NSTextInputContext.new()
        current_keyboard = ic.selectedKeyboardInputSource()

    To list the currently available keyboards:

        keyboards = ic.keyboardInputSources()

    To change the current keyboard (to 'Arabic', for example):

        ic.setValue_forKey_('com.apple.keylayout.Arabic',
        'selectedKeyboardInputSource')


    Now, that is the good news! This all worked great in my source
    code, but as an app bundle (created with cx_Freeze 4.3.2) it
    wouldn't run at all. I'll include the full error trace at the end
    of this email, but the problems seem to start with the import of
    AppKit and end with objc/_lazyimport.py.

    I'm not sure if this points to a 'bug' in objc or something else
    which I've left out of my setup routine, but if anyone has any
    ideas, I would be interested to hear from you.

    Best regards,
    Timothy Grove



    On 05/03/2015 14:51, Timothy W. Grove wrote:
    I was looking for a way to change keyboard layouts from within a
    Python 3 / PyQt4 application. Win32api.LoadKeyboardLayout has
    come to my rescue on Windows, but is anyone aware of a
    cross-platform or OSX specific solution for Apple Mac? Thanks for
    any suggestions.

    Best regards,
    Tim

        Traceback (most recent call last):

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/cx_Freeze/initscripts/Console3.py",
        line 27, in <module>

            exec(code, m.__dict__)

          File "soosl.py", line 6, in <module>

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/importlib/_bootstrap.py",
        line 1565, in _find_and_load

            return _find_and_load_unlocked(name, import_)

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/importlib/_bootstrap.py",
        line 1532, in _find_and_load_unlocked

            loader.load_module(name)

          File
        "/Users/timothygrove/Documents/workspace/SooSL/mainwindow.py",
        line 19, in <module>

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/importlib/_bootstrap.py",
        line 1565, in _find_and_load

            return _find_and_load_unlocked(name, import_)

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/importlib/_bootstrap.py",
        line 1532, in _find_and_load_unlocked

            loader.load_module(name)

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/AppKit/__init__.py",
        line 9, in <module>

            import Foundation

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/importlib/_bootstrap.py",
        line 1565, in _find_and_load

            return _find_and_load_unlocked(name, import_)

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/importlib/_bootstrap.py",
        line 1532, in _find_and_load_unlocked

            loader.load_module(name)

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/Foundation/__init__.py",
        line 9, in <module>

            import CoreFoundation

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/importlib/_bootstrap.py",
        line 1565, in _find_and_load

            return _find_and_load_unlocked(name, import_)

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/importlib/_bootstrap.py",
        line 1532, in _find_and_load_unlocked

            loader.load_module(name)

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/CoreFoundation/__init__.py",
        line 20, in <module>

            }, ())

          File
        
"/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/objc/_lazyimport.py",
        line 82, in __init__

            if nm.startswith(pfx):

        AttributeError: 'NoneType' object has no attribute 'startswith'

        logout


        [Process completed]



    _______________________________________________
    PyQt mailing list p...@riverbankcomputing.com
    <mailto:p...@riverbankcomputing.com>
    http://www.riverbankcomputing.com/mailman/listinfo/pyqt



-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to