TheCellule / python-bleson

Python Bluetooth LE Module
https://groups.google.com/group/python-bleson
MIT License
117 stars 24 forks source link

Background CoreBluetooth thread on macOS < 10.12 is not supported by PyObjC #3

Closed ukBaz closed 4 years ago

ukBaz commented 6 years ago

I got some errors installing on MacOS. Is pip trying to install bleson-win?

(bleson) eddies-computer:development barry$ pip3 install bleson
Collecting bleson
  Downloading bleson-0.0.6-py3-none-any.whl
Collecting blesonwin (from bleson)
  Downloading blesonwin-0.0.5.tar.gz
Installing collected packages: blesonwin, bleson
  Running setup.py install for blesonwin ... error
    Complete output from command /Users/barry/development/bleson/bin/python3 -u -c "import setuptools, tokenize;__file__='/private/var/folders/8m/mq5m4s0j66165q196jyq_fhc0000gp/T/pip-build-oqk00giy/blesonwin/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/8m/mq5m4s0j66165q196jyq_fhc0000gp/T/pip-3x8k4xzk-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/barry/development/bleson/include/site/python3.6/blesonwin:
    running install
    running build
    running build_ext
    building 'blesonwin' extension
    creating build
    creating build/temp.macosx-10.6-intel-3.6
    /usr/bin/clang -fno-strict-aliasing -Wsign-compare -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -g -I/Users/barry/development/bleson/include -I/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c blesonwin.cpp -o build/temp.macosx-10.6-intel-3.6/blesonwin.o /std:c++latest
    clang: error: no such file or directory: '/std:c++latest'
    error: command '/usr/bin/clang' failed with exit status 1

    ----------------------------------------
Command "/Users/barry/development/bleson/bin/python3 -u -c "import setuptools, tokenize;__file__='/private/var/folders/8m/mq5m4s0j66165q196jyq_fhc0000gp/T/pip-build-oqk00giy/blesonwin/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/8m/mq5m4s0j66165q196jyq_fhc0000gp/T/pip-3x8k4xzk-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/barry/development/bleson/include/site/python3.6/blesonwin" failed with error code 1 in /private/var/folders/8m/mq5m4s0j66165q196jyq_fhc0000gp/T/pip-build-oqk00giy/blesonwin/
WayneKeenan commented 6 years ago

Yes. I'm Looking into how to properly specify platform specific dependencies in setuptools config. I have found the syntax but having trouble getting it to actually work in a virtual env.

WayneKeenan commented 6 years ago

I've added extras_require to setup.py but the subsequent issue I thought I had wasn't virtualenv related, it was because the public PyPiTest repo doesn't have pyobjc.

I've uploaded a new package to PyPi, and have successfully installed and run it in a venv, please try again, thanks.


shinytoo:bin wayne$ rm -fr env/prod
shinytoo:bin wayne$ virtualenv --no-site-packages env/prod
Using base prefix '/usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/wayne/local.projects/TheCellule/python-bleson-api-sandpit/env/test/bin/env/prod/bin/python3.6
Also creating executable in /Users/wayne/local.projects/TheCellule/python-bleson-api-sandpit/env/test/bin/env/prod/bin/python
Installing setuptools, pip, wheel...done.
shinytoo:bin wayne$ cd env/prod/bin
shinytoo:bin wayne$ source activate
(prod) shinytoo:bin wayne$ pip3 install --upgrade pip setuptools wheel
Requirement already up-to-date: pip in /Users/wayne/local.projects/TheCellule/python-bleson-api-sandpit/env/test/bin/env/prod/lib/python3.6/site-packages
Requirement already up-to-date: setuptools in /Users/wayne/local.projects/TheCellule/python-bleson-api-sandpit/env/test/bin/env/prod/lib/python3.6/site-packages
Requirement already up-to-date: wheel in /Users/wayne/local.projects/TheCellule/python-bleson-api-sandpit/env/test/bin/env/prod/lib/python3.6/site-packages
(prod) shinytoo:bin wayne$ pip3 install --no-cache-dir bleson
Collecting bleson
  Downloading bleson-0.0.8.tar.gz
Collecting pyobjc (from bleson)
  Downloading pyobjc-4.0.tar.gz
Collecting pyobjc-core==4.0 (from pyobjc->bleson)
  Downloading pyobjc_core-4.0-cp36-cp36m-macosx_10_6_intel.whl (507kB)
    100% |████████████████████████████████| 512kB 3.5MB/s 
Collecting pyobjc_framework-AVKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_AVKit-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-AVFoundation==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_AVFoundation-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-Accounts==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_Accounts-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-AddressBook==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_AddressBook-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-AppleScriptKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_AppleScriptKit-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-AppleScriptObjC==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_AppleScriptObjC-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-ApplicationServices==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_ApplicationServices-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-Automator==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_Automator-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-CFNetwork==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_CFNetwork-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CalendarStore==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_CalendarStore-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-CloudKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_CloudKit-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-Cocoa==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_Cocoa-4.0-cp36-cp36m-macosx_10_6_intel.whl (302kB)
    100% |████████████████████████████████| 307kB 3.0MB/s 
Collecting pyobjc_framework-Collaboration==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_Collaboration-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-Contacts==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_Contacts-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-ContactsUI==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_ContactsUI-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CoreBluetooth==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreBluetooth-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CoreData==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreData-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CoreLocation==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreLocation-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CoreServices==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreServices-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-CoreText==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreText-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CoreWLAN==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreWLAN-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CryptoTokenKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_CryptoTokenKit-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-DictionaryServices==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_DictionaryServices-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-DiskArbitration==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_DiskArbitration-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-EventKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_EventKit-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-ExceptionHandling==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_ExceptionHandling-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-FSEvents==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_FSEvents-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-FinderSync==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_FinderSync-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-GameCenter==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_GameCenter-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-GameController==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_GameController-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-IMServicePlugIn==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_IMServicePlugIn-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-InputMethodKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_InputMethodKit-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-ImageCaptureCore==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_ImageCaptureCore-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-Intents==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_Intents-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-InstallerPlugins==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_InstallerPlugins-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-InstantMessage==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_InstantMessage-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-IOSurface==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_IOSurface-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-LatentSemanticMapping==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_LatentSemanticMapping-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-LaunchServices==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_LaunchServices-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-LocalAuthentication==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_LocalAuthentication-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-MapKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_MapKit-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-MediaAccessibility==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_MediaAccessibility-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-MediaLibrary==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_MediaLibrary-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-MediaPlayer==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_MediaPlayer-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-ModelIO==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_ModelIO-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-MultipeerConnectivity==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_MultipeerConnectivity-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-NetFS==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_NetFS-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-NetworkExtension==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_NetworkExtension-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-NotificationCenter==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_NotificationCenter-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-OpenDirectory==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_OpenDirectory-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-Photos==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_Photos-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-PhotosUI==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_PhotosUI-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-PreferencePanes==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_PreferencePanes-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-PubSub==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_PubSub-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-QTKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_QTKit-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-Quartz==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_Quartz-4.0-cp36-cp36m-macosx_10_6_intel.whl (129kB)
    100% |████████████████████████████████| 133kB 2.8MB/s 
Collecting pyobjc_framework-SafariServices==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_SafariServices-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-ScreenSaver==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_ScreenSaver-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-ScriptingBridge==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_ScriptingBridge-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-SearchKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_SearchKit-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-ServiceManagement==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_ServiceManagement-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-Social==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_Social-4.0-py2.py3-none-any.whl
Collecting pyobjc_framework-SpriteKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_SpriteKit-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-StoreKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_StoreKit-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-SyncServices==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_SyncServices-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-SystemConfiguration==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_SystemConfiguration-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-WebKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_WebKit-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-GameKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_GameKit-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-GameplayKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_GameplayKit-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-SceneKit==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_SceneKit-4.0-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-iTunesLibrary==4.0 (from pyobjc->bleson)
  Downloading pyobjc_framework_iTunesLibrary-4.0-py2.py3-none-any.whl
Installing collected packages: pyobjc-core, pyobjc-framework-Cocoa, pyobjc-framework-Quartz, pyobjc-framework-AVKit, pyobjc-framework-AVFoundation, pyobjc-framework-Accounts, pyobjc-framework-AddressBook, pyobjc-framework-AppleScriptKit, pyobjc-framework-AppleScriptObjC, pyobjc-framework-ApplicationServices, pyobjc-framework-Automator, pyobjc-framework-CFNetwork, pyobjc-framework-CalendarStore, pyobjc-framework-CoreData, pyobjc-framework-CoreLocation, pyobjc-framework-CloudKit, pyobjc-framework-Collaboration, pyobjc-framework-Contacts, pyobjc-framework-ContactsUI, pyobjc-framework-CoreBluetooth, pyobjc-framework-LaunchServices, pyobjc-framework-SearchKit, pyobjc-framework-FSEvents, pyobjc-framework-DictionaryServices, pyobjc-framework-CoreServices, pyobjc-framework-CoreText, pyobjc-framework-CoreWLAN, pyobjc-framework-CryptoTokenKit, pyobjc-framework-DiskArbitration, pyobjc-framework-EventKit, pyobjc-framework-ExceptionHandling, pyobjc-framework-FinderSync, pyobjc-framework-GameCenter, pyobjc-framework-GameController, pyobjc-framework-IMServicePlugIn, pyobjc-framework-InputMethodKit, pyobjc-framework-ImageCaptureCore, pyobjc-framework-Intents, pyobjc-framework-InstallerPlugins, pyobjc-framework-InstantMessage, pyobjc-framework-IOSurface, pyobjc-framework-LatentSemanticMapping, pyobjc-framework-LocalAuthentication, pyobjc-framework-MapKit, pyobjc-framework-MediaAccessibility, pyobjc-framework-MediaLibrary, pyobjc-framework-MediaPlayer, pyobjc-framework-ModelIO, pyobjc-framework-MultipeerConnectivity, pyobjc-framework-NetFS, pyobjc-framework-NetworkExtension, pyobjc-framework-NotificationCenter, pyobjc-framework-OpenDirectory, pyobjc-framework-Photos, pyobjc-framework-PhotosUI, pyobjc-framework-PreferencePanes, pyobjc-framework-PubSub, pyobjc-framework-QTKit, pyobjc-framework-SafariServices, pyobjc-framework-ScreenSaver, pyobjc-framework-ScriptingBridge, pyobjc-framework-ServiceManagement, pyobjc-framework-Social, pyobjc-framework-SpriteKit, pyobjc-framework-StoreKit, pyobjc-framework-SyncServices, pyobjc-framework-SystemConfiguration, pyobjc-framework-WebKit, pyobjc-framework-GameKit, pyobjc-framework-GameplayKit, pyobjc-framework-SceneKit, pyobjc-framework-iTunesLibrary, pyobjc, bleson
  Running setup.py install for pyobjc ... done
  Running setup.py install for bleson ... done
Successfully installed bleson-0.0.8 pyobjc-4.0 pyobjc-core-4.0 pyobjc-framework-AVFoundation-4.0 pyobjc-framework-AVKit-4.0 pyobjc-framework-Accounts-4.0 pyobjc-framework-AddressBook-4.0 pyobjc-framework-AppleScriptKit-4.0 pyobjc-framework-AppleScriptObjC-4.0 pyobjc-framework-ApplicationServices-4.0 pyobjc-framework-Automator-4.0 pyobjc-framework-CFNetwork-4.0 pyobjc-framework-CalendarStore-4.0 pyobjc-framework-CloudKit-4.0 pyobjc-framework-Cocoa-4.0 pyobjc-framework-Collaboration-4.0 pyobjc-framework-Contacts-4.0 pyobjc-framework-ContactsUI-4.0 pyobjc-framework-CoreBluetooth-4.0 pyobjc-framework-CoreData-4.0 pyobjc-framework-CoreLocation-4.0 pyobjc-framework-CoreServices-4.0 pyobjc-framework-CoreText-4.0 pyobjc-framework-CoreWLAN-4.0 pyobjc-framework-CryptoTokenKit-4.0 pyobjc-framework-DictionaryServices-4.0 pyobjc-framework-DiskArbitration-4.0 pyobjc-framework-EventKit-4.0 pyobjc-framework-ExceptionHandling-4.0 pyobjc-framework-FSEvents-4.0 pyobjc-framework-FinderSync-4.0 pyobjc-framework-GameCenter-4.0 pyobjc-framework-GameController-4.0 pyobjc-framework-GameKit-4.0 pyobjc-framework-GameplayKit-4.0 pyobjc-framework-IMServicePlugIn-4.0 pyobjc-framework-IOSurface-4.0 pyobjc-framework-ImageCaptureCore-4.0 pyobjc-framework-InputMethodKit-4.0 pyobjc-framework-InstallerPlugins-4.0 pyobjc-framework-InstantMessage-4.0 pyobjc-framework-Intents-4.0 pyobjc-framework-LatentSemanticMapping-4.0 pyobjc-framework-LaunchServices-4.0 pyobjc-framework-LocalAuthentication-4.0 pyobjc-framework-MapKit-4.0 pyobjc-framework-MediaAccessibility-4.0 pyobjc-framework-MediaLibrary-4.0 pyobjc-framework-MediaPlayer-4.0 pyobjc-framework-ModelIO-4.0 pyobjc-framework-MultipeerConnectivity-4.0 pyobjc-framework-NetFS-4.0 pyobjc-framework-NetworkExtension-4.0 pyobjc-framework-NotificationCenter-4.0 pyobjc-framework-OpenDirectory-4.0 pyobjc-framework-Photos-4.0 pyobjc-framework-PhotosUI-4.0 pyobjc-framework-PreferencePanes-4.0 pyobjc-framework-PubSub-4.0 pyobjc-framework-QTKit-4.0 pyobjc-framework-Quartz-4.0 pyobjc-framework-SafariServices-4.0 pyobjc-framework-SceneKit-4.0 pyobjc-framework-ScreenSaver-4.0 pyobjc-framework-ScriptingBridge-4.0 pyobjc-framework-SearchKit-4.0 pyobjc-framework-ServiceManagement-4.0 pyobjc-framework-Social-4.0 pyobjc-framework-SpriteKit-4.0 pyobjc-framework-StoreKit-4.0 pyobjc-framework-SyncServices-4.0 pyobjc-framework-SystemConfiguration-4.0 pyobjc-framework-WebKit-4.0 pyobjc-framework-iTunesLibrary-4.0

(prod) shinytoo:bin wayne$ python3 -m bleson --observer
2017-11-18 08:48:42,612 WARNING -         macos_adapter.py: 64 -                      off(): TODO: adatper off
2017-11-18 08:48:42,613 WARNING -         macos_adapter.py: 61 -                       on(): TODO: adatper on
Advertisement(flags=0x00, name=Apple TV, txpower=None uuid16s=[] uuid128s=[] rssi=-73 mfg_data=b'L\x00\t\x06\x02\x04\xc0\xa8\x01\x0f')
Advertisement(flags=0x00, name=Apple TV, txpower=None uuid16s=[] uuid128s=[] rssi=-72 mfg_data=None)
Advertisement(flags=0x00, name=Apple TV, txpower=None uuid16s=[] uuid128s=[] rssi=-84 mfg_data=b'L\x00\t\x06\x02\x00\xc0\xa8\x01\x1a')
Advertisement(flags=0x00, name=Apple TV, txpower=None uuid16s=[] uuid128s=[] rssi=-86 mfg_data=None)
(prod) shinytoo:bin wayne$ deactivate
WayneKeenan commented 6 years ago

@ukBaz does this work for you now?

can this issue be closed?

ukBaz commented 6 years ago

Hi @WayneKeenan ,

Sorry for the delay... I am still having issues...

eddies-computer:development barry$ python3 -m venv my-venv
eddies-computer:development barry$ source my-venv/bin/activate
(my-venv) eddies-computer:development barry$ python3 -V
Python 3.6.0
(my-venv) eddies-computer:development barry$ pip3 install --upgrade pip setuptools wheel
Requirement already up-to-date: pip in ./my-venv/lib/python3.6/site-packages
Collecting setuptools
  Using cached setuptools-38.1.0-py2.py3-none-any.whl
Collecting wheel
  Using cached wheel-0.30.0-py2.py3-none-any.whl
Installing collected packages: setuptools, wheel
  Found existing installation: setuptools 28.8.0
    Uninstalling setuptools-28.8.0:
      Successfully uninstalled setuptools-28.8.0
Successfully installed setuptools-38.1.0 wheel-0.30.0
(my-venv) eddies-computer:development barry$ pip3 install --no-cache-dir bleson
Collecting bleson
  Downloading bleson-0.0.10.tar.gz
Collecting pyobjc (from bleson)
  Downloading pyobjc-4.0.1.tar.gz
Collecting pyobjc-core==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_core-4.0.1-cp36-cp36m-macosx_10_6_intel.whl (507kB)
    100% |████████████████████████████████| 512kB 549kB/s 
Collecting pyobjc_framework-AVKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_AVKit-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-AVFoundation==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_AVFoundation-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-Accounts==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_Accounts-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-AddressBook==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_AddressBook-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-AppleScriptKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_AppleScriptKit-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-AppleScriptObjC==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_AppleScriptObjC-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-ApplicationServices==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_ApplicationServices-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-Automator==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_Automator-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-CFNetwork==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_CFNetwork-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CalendarStore==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_CalendarStore-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-CloudKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_CloudKit-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-Cocoa==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_Cocoa-4.0.1-cp36-cp36m-macosx_10_6_intel.whl (302kB)
    100% |████████████████████████████████| 307kB 295kB/s 
Collecting pyobjc_framework-Collaboration==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_Collaboration-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-CoreBluetooth==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreBluetooth-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CoreData==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreData-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CoreLocation==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreLocation-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CoreServices==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreServices-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-CoreText==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreText-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CoreWLAN==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_CoreWLAN-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-CryptoTokenKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_CryptoTokenKit-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-DictionaryServices==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_DictionaryServices-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-DiskArbitration==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_DiskArbitration-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-EventKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_EventKit-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-ExceptionHandling==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_ExceptionHandling-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-FSEvents==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_FSEvents-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-FinderSync==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_FinderSync-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-GameCenter==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_GameCenter-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-GameController==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_GameController-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-IMServicePlugIn==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_IMServicePlugIn-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-InputMethodKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_InputMethodKit-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-ImageCaptureCore==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_ImageCaptureCore-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-InstallerPlugins==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_InstallerPlugins-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-InstantMessage==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_InstantMessage-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-IOSurface==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_IOSurface-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-LatentSemanticMapping==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_LatentSemanticMapping-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-LaunchServices==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_LaunchServices-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-LocalAuthentication==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_LocalAuthentication-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-MapKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_MapKit-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-MediaAccessibility==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_MediaAccessibility-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-MediaLibrary==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_MediaLibrary-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-MultipeerConnectivity==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_MultipeerConnectivity-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-NetFS==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_NetFS-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-NotificationCenter==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_NotificationCenter-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-OpenDirectory==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_OpenDirectory-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-PreferencePanes==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_PreferencePanes-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-PubSub==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_PubSub-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-QTKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_QTKit-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-Quartz==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_Quartz-4.0.1-cp36-cp36m-macosx_10_6_intel.whl (129kB)
    100% |████████████████████████████████| 133kB 271kB/s 
Collecting pyobjc_framework-ScreenSaver==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_ScreenSaver-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-ScriptingBridge==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_ScriptingBridge-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-SearchKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_SearchKit-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-ServiceManagement==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_ServiceManagement-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-Social==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_Social-4.0.1-py2.py3-none-any.whl
Collecting pyobjc_framework-SpriteKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_SpriteKit-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-StoreKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_StoreKit-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-SyncServices==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_SyncServices-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-SystemConfiguration==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_SystemConfiguration-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-WebKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_WebKit-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-GameKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_GameKit-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-SceneKit==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_SceneKit-4.0.1-cp36-cp36m-macosx_10_6_intel.whl
Collecting pyobjc_framework-iTunesLibrary==4.0.1 (from pyobjc->bleson)
  Downloading pyobjc_framework_iTunesLibrary-4.0.1-py2.py3-none-any.whl
Installing collected packages: pyobjc-core, pyobjc-framework-Cocoa, pyobjc-framework-Quartz, pyobjc-framework-AVKit, pyobjc-framework-AVFoundation, pyobjc-framework-Accounts, pyobjc-framework-AddressBook, pyobjc-framework-AppleScriptKit, pyobjc-framework-AppleScriptObjC, pyobjc-framework-ApplicationServices, pyobjc-framework-Automator, pyobjc-framework-CFNetwork, pyobjc-framework-CalendarStore, pyobjc-framework-CoreLocation, pyobjc-framework-CoreData, pyobjc-framework-CloudKit, pyobjc-framework-Collaboration, pyobjc-framework-CoreBluetooth, pyobjc-framework-LaunchServices, pyobjc-framework-SearchKit, pyobjc-framework-FSEvents, pyobjc-framework-DictionaryServices, pyobjc-framework-CoreServices, pyobjc-framework-CoreText, pyobjc-framework-CoreWLAN, pyobjc-framework-CryptoTokenKit, pyobjc-framework-DiskArbitration, pyobjc-framework-EventKit, pyobjc-framework-ExceptionHandling, pyobjc-framework-FinderSync, pyobjc-framework-GameCenter, pyobjc-framework-GameController, pyobjc-framework-IMServicePlugIn, pyobjc-framework-InputMethodKit, pyobjc-framework-ImageCaptureCore, pyobjc-framework-InstallerPlugins, pyobjc-framework-InstantMessage, pyobjc-framework-IOSurface, pyobjc-framework-LatentSemanticMapping, pyobjc-framework-LocalAuthentication, pyobjc-framework-MapKit, pyobjc-framework-MediaAccessibility, pyobjc-framework-MediaLibrary, pyobjc-framework-MultipeerConnectivity, pyobjc-framework-NetFS, pyobjc-framework-NotificationCenter, pyobjc-framework-OpenDirectory, pyobjc-framework-PreferencePanes, pyobjc-framework-PubSub, pyobjc-framework-QTKit, pyobjc-framework-ScreenSaver, pyobjc-framework-ScriptingBridge, pyobjc-framework-ServiceManagement, pyobjc-framework-Social, pyobjc-framework-SpriteKit, pyobjc-framework-StoreKit, pyobjc-framework-SyncServices, pyobjc-framework-SystemConfiguration, pyobjc-framework-WebKit, pyobjc-framework-GameKit, pyobjc-framework-SceneKit, pyobjc-framework-iTunesLibrary, pyobjc, bleson
  Running setup.py install for pyobjc ... done
  Running setup.py install for bleson ... done
Successfully installed bleson-0.0.10 pyobjc-4.0.1 pyobjc-core-4.0.1 pyobjc-framework-AVFoundation-4.0.1 pyobjc-framework-AVKit-4.0.1 pyobjc-framework-Accounts-4.0.1 pyobjc-framework-AddressBook-4.0.1 pyobjc-framework-AppleScriptKit-4.0.1 pyobjc-framework-AppleScriptObjC-4.0.1 pyobjc-framework-ApplicationServices-4.0.1 pyobjc-framework-Automator-4.0.1 pyobjc-framework-CFNetwork-4.0.1 pyobjc-framework-CalendarStore-4.0.1 pyobjc-framework-CloudKit-4.0.1 pyobjc-framework-Cocoa-4.0.1 pyobjc-framework-Collaboration-4.0.1 pyobjc-framework-CoreBluetooth-4.0.1 pyobjc-framework-CoreData-4.0.1 pyobjc-framework-CoreLocation-4.0.1 pyobjc-framework-CoreServices-4.0.1 pyobjc-framework-CoreText-4.0.1 pyobjc-framework-CoreWLAN-4.0.1 pyobjc-framework-CryptoTokenKit-4.0.1 pyobjc-framework-DictionaryServices-4.0.1 pyobjc-framework-DiskArbitration-4.0.1 pyobjc-framework-EventKit-4.0.1 pyobjc-framework-ExceptionHandling-4.0.1 pyobjc-framework-FSEvents-4.0.1 pyobjc-framework-FinderSync-4.0.1 pyobjc-framework-GameCenter-4.0.1 pyobjc-framework-GameController-4.0.1 pyobjc-framework-GameKit-4.0.1 pyobjc-framework-IMServicePlugIn-4.0.1 pyobjc-framework-IOSurface-4.0.1 pyobjc-framework-ImageCaptureCore-4.0.1 pyobjc-framework-InputMethodKit-4.0.1 pyobjc-framework-InstallerPlugins-4.0.1 pyobjc-framework-InstantMessage-4.0.1 pyobjc-framework-LatentSemanticMapping-4.0.1 pyobjc-framework-LaunchServices-4.0.1 pyobjc-framework-LocalAuthentication-4.0.1 pyobjc-framework-MapKit-4.0.1 pyobjc-framework-MediaAccessibility-4.0.1 pyobjc-framework-MediaLibrary-4.0.1 pyobjc-framework-MultipeerConnectivity-4.0.1 pyobjc-framework-NetFS-4.0.1 pyobjc-framework-NotificationCenter-4.0.1 pyobjc-framework-OpenDirectory-4.0.1 pyobjc-framework-PreferencePanes-4.0.1 pyobjc-framework-PubSub-4.0.1 pyobjc-framework-QTKit-4.0.1 pyobjc-framework-Quartz-4.0.1 pyobjc-framework-SceneKit-4.0.1 pyobjc-framework-ScreenSaver-4.0.1 pyobjc-framework-ScriptingBridge-4.0.1 pyobjc-framework-SearchKit-4.0.1 pyobjc-framework-ServiceManagement-4.0.1 pyobjc-framework-Social-4.0.1 pyobjc-framework-SpriteKit-4.0.1 pyobjc-framework-StoreKit-4.0.1 pyobjc-framework-SyncServices-4.0.1 pyobjc-framework-SystemConfiguration-4.0.1 pyobjc-framework-WebKit-4.0.1 pyobjc-framework-iTunesLibrary-4.0.1
(my-venv) eddies-computer:development barry$ python3 -m bleson --observer
2017-11-25 19:50:55,867  ERROR -         macos_adapter.py:132 -          _runloop_thread(): depythonifying 'pointer', got 'OS_dispatch_queue'
Traceback (most recent call last):
  File "/Users/barry/development/my-venv/lib/python3.6/site-packages/bleson/providers/macos/macos_adapter.py", line 125, in _runloop_thread
    self._manager.initWithDelegate_queue_options_(self, queue_ptr, None)
ValueError: depythonifying 'pointer', got 'OS_dispatch_queue'
2017-11-25 19:50:55,868   INFO -         macos_adapter.py:133 -          _runloop_thread(): Exiting runloop
WayneKeenan commented 6 years ago
  1. What distribution of python is it? python.org? homebrew? other? (please can you post the output of running python3)

  2. What version of macOS are you using?

The issues stems from the way a ObjC dispatch queue is created using ctypes in Python and then passed to the PyObjC wrapper (PyObjc <=4.0.1 doesn't directly support dispatch queues). The queue is needed to run the underlying NSRunLoop (to process CoreBluetooth events) on a Python background thread.

The upcoming release of PyObjc 4.1 has dispatch queue support built-in, so fingers crossed it will work when Bleson will no longer have to use this ctypes method.

But, I'd like to understand why it doesn't work, and attempt to fix it until then.

WayneKeenan commented 6 years ago

These versions are working for me:

macOS: 10.12.6 (16G1036)

pyobjc: 4.0.1-cp36-cp36m-macosx_10_6_intel

bleson: 0.0.10 python.org

Python 3.6.3 (v3.6.3:2c5fed86e0, Oct  3 2017, 00:32:08) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin

homebrew

Python 3.6.3 (default, Oct  4 2017, 06:09:15) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)] on darwin
WayneKeenan commented 6 years ago

I installed 3.6.0 from python.org and this version is also working:

Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin

So it would be interesting to found out what the difference in your env causes this to fail.

ukBaz commented 6 years ago

This is my setup:

System Version: OS X 10.10.5 (14F2511)
Kernel Version: Darwin 14.5.0
(my-venv) eddies-computer:development barry$ pip3 freeze
bleson==0.0.10
pyobjc==4.0.1
Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
WayneKeenan commented 6 years ago

looks like its macOS version, when you get a moment please can you confirm if this 'minimal' test fails the same way too please? thanks

https://gist.github.com/WayneKeenan/8ce4d841158909ad441dc7312637a064

ukBaz commented 6 years ago

Looks fairly similar...

(my-venv) eddies-computer:development barry$ python3 8ce4d841158909ad441dc7312637a064/dispatch_test.py 
depythonifying 'pointer', got 'OS_dispatch_queue'
8ce4d841158909ad441dc7312637a064/dispatch_test.py:45: UninitializedDeallocWarning: leaking an uninitialized object of type CBCentralManager
  DispatchTest()
WayneKeenan commented 6 years ago

perfect, thanks, needed it confirming for a PyObjC issue, https://bitbucket.org/ronaldoussoren/pyobjc/issues/220/valueerror-depythonifying-pointer-got

WayneKeenan commented 6 years ago

I get the same error on El Capitan (10.11.6)

WayneKeenan commented 6 years ago

I've tested the latest pyobj 4.1 dev build on macOS 10.12.6 and it's libdispatch API works, apart from one minor annoyance, raised https://bitbucket.org/ronaldoussoren/pyobjc/issues/221/libdispatchdispatch_queue_create-parameter

Once Xcode is downloaded on the old 10.11.6 laptop then I can test there too, Im guessing if it works on 10.11 then 10.10 should be ok.

A new 4.1 specific test script (with instructions) is here: https://gist.github.com/WayneKeenan/f71525f1fd3839c485946590ae3ef81d

WayneKeenan commented 6 years ago

Unfortunately using the current pyobj 4.1 dev code on macOS 10.11 results in the same error, so I assume 10.10. would fail also. I've updated pyobjc issue 220.

Edit: the author of PyObjC has updated the ticket, a change within the PyObjC library is required to fix this for 10.10

WayneKeenan commented 6 years ago

The next release (v4.1) of PyObj will include the pointer fix required for bleson to work on macOS 10.9 to 10.11. Timing is obviously dependent on that project, but it looks to be soon as the author said he "[wants] to release before the end of the year" in issue 215

WayneKeenan commented 6 years ago

I just noticed PyObjC 4.1 is out, but I don't have access to the MBP with macOS <10.12, @ukBaz when you get a moment please could you retest after upgrading/re-instaling your pyobjc? thanks Wayne

ukBaz commented 6 years ago

I did an upgrade of pyobjc and I still seem to have the error:

...
    Uninstalling pyobjc-4.0.1:
      Successfully uninstalled pyobjc-4.0.1
Successfully installed pyobjc-4.1 pyobjc-core-4.1 pyobjc-framework-AVFoundation-4.1 pyobjc-framework-AVKit-4.1 pyobjc-framework-Accounts-4.1 pyobjc-framework-AddressBook-4.1 pyobjc-framework-AppleScriptKit-4.1 pyobjc-framework-AppleScriptObjC-4.1 pyobjc-framework-ApplicationServices-4.1 pyobjc-framework-Automator-4.1 pyobjc-framework-CFNetwork-4.1 pyobjc-framework-CalendarStore-4.1 pyobjc-framework-CloudKit-4.1 pyobjc-framework-Cocoa-4.1 pyobjc-framework-Collaboration-4.1 pyobjc-framework-CoreBluetooth-4.1 pyobjc-framework-CoreData-4.1 pyobjc-framework-CoreLocation-4.1 pyobjc-framework-CoreServices-4.1 pyobjc-framework-CoreText-4.1 pyobjc-framework-CoreWLAN-4.1 pyobjc-framework-CryptoTokenKit-4.1 pyobjc-framework-DictionaryServices-4.1 pyobjc-framework-DiskArbitration-4.1 pyobjc-framework-EventKit-4.1 pyobjc-framework-ExceptionHandling-4.1 pyobjc-framework-FSEvents-4.1 pyobjc-framework-FinderSync-4.1 pyobjc-framework-GameCenter-4.1 pyobjc-framework-GameController-4.1 pyobjc-framework-GameKit-4.1 pyobjc-framework-IMServicePlugIn-4.1 pyobjc-framework-IOSurface-4.1 pyobjc-framework-ImageCaptureCore-4.1 pyobjc-framework-InputMethodKit-4.1 pyobjc-framework-InstallerPlugins-4.1 pyobjc-framework-InstantMessage-4.1 pyobjc-framework-LatentSemanticMapping-4.1 pyobjc-framework-LaunchServices-4.1 pyobjc-framework-LocalAuthentication-4.1 pyobjc-framework-MapKit-4.1 pyobjc-framework-MediaAccessibility-4.1 pyobjc-framework-MediaLibrary-4.1 pyobjc-framework-MultipeerConnectivity-4.1 pyobjc-framework-NetFS-4.1 pyobjc-framework-NotificationCenter-4.1 pyobjc-framework-OpenDirectory-4.1 pyobjc-framework-PreferencePanes-4.1 pyobjc-framework-PubSub-4.1 pyobjc-framework-QTKit-4.1 pyobjc-framework-Quartz-4.1 pyobjc-framework-SceneKit-4.1 pyobjc-framework-ScreenSaver-4.1 pyobjc-framework-ScriptingBridge-4.1 pyobjc-framework-SearchKit-4.1 pyobjc-framework-Security-4.1 pyobjc-framework-SecurityFoundation-4.1 pyobjc-framework-SecurityInterface-4.1 pyobjc-framework-ServiceManagement-4.1 pyobjc-framework-Social-4.1 pyobjc-framework-SpriteKit-4.1 pyobjc-framework-StoreKit-4.1 pyobjc-framework-SyncServices-4.1 pyobjc-framework-SystemConfiguration-4.1 pyobjc-framework-WebKit-4.1 pyobjc-framework-iTunesLibrary-4.1 pyobjc-framework-libdispatch-4.1
(my-venv) eddies-computer:my-venv barry$ python3 -m bleson --observer
2017-12-11 21:02:23,052  ERROR -         macos_adapter.py:132 -          _runloop_thread(): depythonifying 'pointer', got 'OS_dispatch_queue'
Traceback (most recent call last):
  File "/Users/barry/development/my-venv/lib/python3.6/site-packages/bleson/providers/macos/macos_adapter.py", line 125, in _runloop_thread
    self._manager.initWithDelegate_queue_options_(self, queue_ptr, None)
ValueError: depythonifying 'pointer', got 'OS_dispatch_queue'
2017-12-11 21:02:23,086   INFO -         macos_adapter.py:133 -          _runloop_thread(): Exiting runloop
WayneKeenan commented 6 years ago

To recap: This won't be sufficiently resolved until PyObj issue 220 is fixed for macOS < 10.12: https://bitbucket.org/ronaldoussoren/pyobjc/issues/220/valueerror-depythonifying-pointer-got

A sub-optimal solution is to not spawn a background thread in the Bleson roles'start() methods, however this has a very visible knock on effect of special-casing the public API for older versions of a single platform, which is technical debt I wish to avoid.

WayneKeenan commented 4 years ago

This is working on macOS 10.15.5. I'm closing this as 10.12 is quite old and it's still not been fixed upstream AFAIK.