Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!bcyclone04.am1.xlned.com!bcyclone04.am1.xlned.com!newsfeed.xs4all.nl!newsfeed4.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.005 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'subject:: [': 0.04; 'url:bitbucket': 0.05; 'attribute': 0.07; 'skip:" 60': 0.07; '__init__': 0.09; 'rescue': 0.09; 'suggestions.': 0.09; 'windows,': 0.09; 'python': 0.11; "wouldn't": 0.14; '(created': 0.16; 'grove': 0.16; 'received:192.168.1.4': 0.16; 'skip:" 100': 0.16; 'subject:PyQt': 0.16; 'url:95': 0.16; 'used:': 0.16; 'all.': 0.16; 'appropriate': 0.16; 'wrote:': 0.18; 'app': 0.19; 'pfxlen:0': 0.19; "skip:' 30": 0.19; 'thu,': 0.19; 'version.': 0.19; 'subject:] ': 0.20; 'foundation': 0.20; 'code,': 0.22; 'import': 0.22; 'installation': 0.23; 'header:User-Agent:1': 0.23; 'error': 0.23; 'keyboard': 0.24; 'skip:i 40': 0.24; 'question': 0.24; 'cc:2**0': 0.24; "i've": 0.25; 'source': 0.25; 'this:': 0.26; 'skip:_ 20': 0.27; 'header:In-Reply-To:1': 0.27; 'installed': 0.27; 'fixed': 0.29; 'michael': 0.29; 'points': 0.29; 'tim': 0.29; "i'm": 0.30; 'url:mailman': 0.30; 'trace': 0.31; 'anyone': 0.31; 'file': 0.32; 'run': 0.32; 'worked': 0.33; '(most': 0.33; 'updated': 0.34; 'skip:_ 10': 0.34; 'received:74.125.82': 0.34; 'problem': 0.35; 'something': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'url:listinfo': 0.36; "didn't": 0.36; 'thanks': 0.36; "i'll": 0.36; 'subject:?': 0.36; 'url:org': 0.36; 'list': 0.37; 'being': 0.38; 'skip:o 20': 0.38; 'skip:& 10': 0.38; 'problems': 0.38; 'apple': 0.38; 'to:addr :python-list': 0.38; 'pm,': 0.38; 'skip:_ 40': 0.38; 'recent': 0.39; 'received:74.125': 0.39; 'sure': 0.39; 'to:addr:python.org': 0.39; 'mailing': 0.39; 'full': 0.61; 'you.': 0.62; 'hear': 0.63; 'personal': 0.63; 'skip:n 10': 0.64; 'great': 0.65; 'within': 0.65; 'reply': 0.66; 'latest': 0.67; 'mar': 0.68; '20,': 0.68; 'email,': 0.69; 'link:': 0.72; '2015': 0.84; 'received:74.125.82.172': 0.84; 'timothy': 0.84; 'subject:skip:w 20': 0.91; 'ports': 0.93 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type; bh=XyOjGuQwvS1zS8nMisWPiM6vSAwB3Fy5TLD+5VmHMME=; b=PhIzWPc7OLG0Chjp9xWeqzIPgzPIVNcD63Vzhvu2fFPPxDwEXYZGRc4GpyL4SkE6X/ qSlxgiMKe3zhcqtkXE007sqTaCqDqbP75EHrxAAK/jZHNI2+GjJP/7wm85qZea8FcnHR w1+22rv3pT39ZHgsXTkqJHOwJvVcJQ990vfSon2jNsNIa5XHcbRo3wSj0+vG5e2DMTB5 3HqQjD8LUfJ4r6vXweDv51FnSmTt3q6v6MKIAaPazUnd1KOLlB9qlkvg7QddDe7dNfmq K/L/JdbLzejiPZ1TK4TqIhqRWmb1jBe1L1VyPVhG7EG8+0FAIIW9m/755YQeaf+101k2 zQOQ== X-Gm-Message-State: ALoCoQlhGmwRABY+EgfcQ5+KI3RVjGniYtor/IAkgF+XyRaw8AMD+2wAr9/Mx+L2kkKvFl6f5TQB X-Received: by 10.180.91.79 with SMTP id cc15mr25440095wib.37.1426871854991; Fri, 20 Mar 2015 10:17:34 -0700 (PDT) Date: Fri, 20 Mar 2015 17:17:28 +0000 From: "Timothy W. Grove" User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Python CC: PyQT mailing list Subject: Re: [PyQt] win32api.LoadKeyboardLayout; any solutions for OSX? References: <54F86D7B.60504@sil.org> <550B0559.60903@sil.org> In-Reply-To: Content-Type: multipart/alternative; boundary="------------040501050805080908070808" X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.19 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 420 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1426871862 news.xs4all.nl 2907 [2001:888:2000:d::a6]:42315 X-Complaints-To: abuse@xs4all.nl X-Received-Bytes: 22760 X-Received-Body-CRC: 3529835346 Xref: csiph.com comp.lang.python:87787 This is a multi-part message in MIME format. --------------040501050805080908070808 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit 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 > 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 > > exec(code, m.__dict__) > > File "soosl.py", line 6, in > > 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 > > 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 > > 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 > > 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 > > }, ()) > > 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 PyQt@riverbankcomputing.com > > http://www.riverbankcomputing.com/mailman/listinfo/pyqt > > --------------040501050805080908070808 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit 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:

On Thu, Mar 19, 2015 at 12:20 PM, Timothy W. Grove <tim_grove@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    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt


--------------040501050805080908070808--