我比较喜欢使用python,常用的开发环境是mac,如果跟我使用一样的开发环境,可以继续往下看哦~ python有一个封装了 Mac OS 上的 Objective-C 的一个库,叫 pyobjc 。 安装非常简单,用pip即可, pip install pyobjc 利用pyobjc可以方便地用python开发mac的桌面app,但是操作鼠标跟键盘还要写不少代码。 这时候,再配合一个python库 PyAutoGUI,此库基于pyobjc,兼容window,使用它可以控制鼠标和键盘。利用它可以实现自动化任务,再也不用担心有重复枯燥的任务了。
swift切换输入法很简单,Apple提供了很详细的Text Input Service文档(现在这个文档403了,可以使用google的cache访问);我希望使用python来调用这些接口,很遗憾的是,pyobjc 使用ctypes包装这个方法有两个地方可以借鉴: pyobjc 转ctypes兼容类型 pyobjc提供的对象是不能直接传递给ctypes要包装的函数使用的,需要转换成可以识别的类型。 每一个pyobjc提供的对象都有一个__c_void_p__()方法,对它调用这个方法就可以把这个对象转换成一个c_void_p类型 ctypes指针构造出pyobjc对象 简单包装一下objcruntime (新版的pyobjc模块貌似已经包装了这个方法) PS:本人第一次包装objc接口,对于objc以及pyobjc均不熟悉,可能有更优雅的方法,请批评指正。 如何自动切换?
install --user ezgmail pip install --user ezsheets pip install --user pillow==6.0.0 pip install --user pyobjc-framework-Quartz ==5.2(仅在 MacOS 上) pip install --user pyobjc-core==5.2(仅在 MacOS 上) pip install --user pyobjc==5.2(仅在 MacOS 上) pip install --user python3-xlib==0.15(仅在 Linux 上) pip install --user pyautogui 注 对于 MacOS 用户: pyobjc 您还应该先安装 pyobjc-core 模块,这将减少整体安装时间。 安装一个模块后,您可以通过在交互式 Shell 中运行import ModuleName 来测试它是否安装成功。
API "wmi>=1.5.1; platform_system == 'Windows'" # Windows 管理接口 ] # macOS 特定依赖组 macos = [ "pyobjc >=9.2; platform_system == 'Darwin'", # macOS 系统 API "pyobjc-framework-Cocoa>=9.2; platform_system Windows'", # Windows 系统 API "wmi>=1.5.1; platform_system == 'Windows'" # Windows 管理接口 "pyobjc >=9.2; platform_system == 'Darwin'", # macOS 系统 API "pyobjc-framework-Cocoa>=9.2; platform_system
在OS X 上,运行sudo pip3 install pyobjc-framework-Quartz,sudo pip3 install pyobjc-core,然后sudo pip3 install pyobjc。
如果是 Mac 还要安装 pyobjc: pip3 install pyobjc-core pip3 install pyobjc 如果是 Linux 还需要安装下这些: sudo apt-get scrot
10.13 - 10.15上进行过测试) VMware Fusion、Parallels、VirtualBox等 Python 3.5或更高版本 Monitor.app(可选) py-applescript PyObjC freeware/monitor.html https://github.com/rdhyee/py-applescript https://bitbucket.org/ronaldoussoren/pyobjc
pip3 install pyautogui 2、macOS 环境下 PyAutoGUI 需要 PyObjC 运行 AppKit 和 Quartz 模块。 sudo pip3 install pyobjc-core sudo pip3 install pyobjc sudo pip3 install pyautogui 3、Linux 环境下 PyAutoGUI
venv traysource tray/bin/activatepip install -i https://pypi.org/simple pystray pillow numpy SoundCard pyobjc1
lib/python/site-packages /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
使用文档 安装环境 Python 2.7 运行对应操作系统安装命令: Pycrypto Requests Colorama PIL Windows 支持 Py2exe pywin32 Mac OSX 支持 PyObjC
python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
PyObjc, ObjectiveC 工具下的 Python 写法。 RubyPython, 同 Ruby 集成的 Python 版本。
PyObjc, ObjectiveC 工具下的 Python 写法。 RubyPython, 同 Ruby 集成的 Python 版本。 ?
PyObjc, ObjectiveC 工具下的 Python 写法。 RubyPython, 同 Ruby 集成的 Python 版本。 ?
PyObjc, ObjectiveC 工具包写的Python 版本。RubyPython, 同 Ruby 集成的 Python 版本。
PyObjc, ObjectiveC 工具下的 Python 写法。 RubyPython, 同 Ruby 集成的 Python 版本。
python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
2.7/Extras/lib/python’, ‘/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC