[Pythonmac-SIG] PyObjC and macOS 10.12 (Sierra)

Andrew Jaffe a.h.jaffe at gmail.com
Tue Sep 13 17:37:41 EDT 2016


Hi,


> On 13 Sep 2016, at 22:26, Jack Jansen <jack.jansen at cwi.nl> wrote:
> 
> You’re absolutely right (both on SIP and on /Library/Frameworks/Python.framework probably being a python.org install), sorry for the confusion.
> 
> This seems to be due to the way Apple has done the “Extras” directory, and adding things there to sys.path.
> 
> See for example https://github.com/pypa/pip/issues/2468
> 
> If you can get rid of /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python in sys.path you should be all set.

Thanks, guys.

Indeed, these /System/Library dirs are in sys.path:

    In [1]: import sys
    In [2]: print [p for p in sys.path if 'System' in p]
    ['/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC’]

But I’m still confused: why is this problem only showing up now? Is the same setup that everyone has? Or is it just me for some reason? How and where would sys.path be set to this, and how and where should I change it? (Without disabling SIP, please!)

Andrew







>> On  13-Sep-2016, at 22:59 , Glyph Lefkowitz <glyph at twistedmatrix.com> wrote:
>> 
>> 
>>> On Sep 13, 2016, at 12:05 PM, Jack Jansen <Jack.Jansen at cwi.nl> wrote:
>>> 
>>> I think /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages is a very old location for storing Python packages. Recently things have been installed in /Library/Python/2.7/site-packages.
>>> 
>>> Could it be that you’ve installed pyobjc a couple of OSX releases ago?
>> 
>> This is always worth checking ;).  Particularly if it was a few Setuptools releases ago.  Also worth checking: ~/Library/Python.
>> 
>>> And could it be that the OSX upgrade that introduced SIP somehow didn’t clean out user-installed things from /Library/Frameworks before turning off write permission?
>> 
>> SIP locks down /System, not /Library.
>> 
>>> A possible workaround is to turn off SIP (or boot from the recovery partition), record what is in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages and then clean it out. Then after a reboot re-install the packages you’re still using.
>> 
>> This should be an _absolute_ last resort, though.  You should be able to clean out /Library just fine.  If you have a /Library/Frameworks/Python.framework, that's probably Python.org python, not system python.
>> 
>> -glyph
> 
> --
> Jack Jansen, <Jack.Jansen at cwi.nl>, http://www.cwi.nl/~jack
> If I can't dance I don't want to be part of your revolution -- Emma Goldman
> 
> 
> 



More information about the Pythonmac-SIG mailing list