写下这篇真是满心恼火。为了一些系统该死的默认设置浪费了我两天时间。
简单描述一下吧。libusb是用于多种操作系统上以用户模式访问USB设备的库,用C语言编写,现在同时可用的有1.0.x和0.1.x两个版本。PyUSB是对libusb的封装,可以同时支持libusb-1.0.x和libusb-0.1.x,同时还支持OpenUSB,这个就不说了。实际中PyUSB有两个版本,0.4.x是使用C扩展模块方式写的,后来测试发现因为太久不更新,连导入的libusb的头文件都不对,几乎没有意义了。而PyUSB-1.0则是使用ctypes方式,本身无C代码,而只是调用libusb的动态库。
而关于操作系统方面,是大约一个月前买的mc374,最近又买了若干工具打算再玩玩无线电。工具里有夹具和恒温焊台,都是很方便的玩意。当然焊接时还是感觉自己的手不够用,如果可以有三只手,分别拿着零件、焊锡丝和烙铁就好了。为了方便调试,可以将一些玩意焊接好以后,用VUSB写个接口板,连接单片机与电脑的USB接口。所以,我需要在macbookpro上安装PyUSB。
PyUSB-1.0本身是纯Python模块,安装简单,安装后尝试搜索设备失败了,提示找不到后端。经过深入代码的逐行调试发现是没有找到libusb库。
通过macports尝试安装了libusb的两个版本,都提示还是找不到,这才发现macports安装各类软件都是在单独的目录。必须自己设置DYLD_LIBRARY_PATH到路径才行。
设置好了库路径提示mach-o, but wrong architecture,大体是说dlopen()打开动态库的时候发现不是同一个体系结构的编译结果。这就晕菜了,到网上找到了判断动态库体系结构的命令。 "lipo -info <libfile>" ,可见macports安装的库都是通过Xcode自带的gcc编译的,默认都是x86_64的。而我在python.org下载的MacPython中的库全都是"i386 ppc"。难怪两者不兼容。
好吧,继续尝试。自己下载了libusb-1.0.8的源码包,编译安装后还是x86_64的。
既然此路不通,就尝试自己重新编译ctypes,让其体系结构也成为x86_64的。不过发现MacPython没有带开发的库。于是通下决心用macports来安装Python2.5。安装好以后还需要到"~/.profile"中去掉MacPython设置的PATH才能正确启动。这个安装好以后是Python2.5.5,不过居然没有自带ctypes,我真是,…
当然了macports中有附带py24-ctypes和py26-ctypes,唯独没有给Python2.5的。
咬牙继续,现在有Python开发包了,就去自己编译安装ctypes。结果发现其中报一些语法错误,应该是某些类型定义被误认为不是类型了。出现在爱ffi.h:161开始的几处。进去代码看看,完全没有手工修改的思路。放弃。
尝试安装PyUSB-0.4.3,发现其引用头文件usb.h,而现代的libusb已经叫做libusb.h了。编译过不去,放弃。
进去macports安装的Python2.5.5的库路径,看了_ctypes*.dylib这些文件,挨个尝试,都失败了,包括从MacPython-2.5.4拷贝过去的。
整理思路,我还没疯。继续研究刚才的PyUSB-1.0配合libusb-1.0.8。现在只要能将libusb-1.0.8编译成i386架构即可。于是继续在configure以后修改其Makefile。最终在libusb-1.0.8/libusb/Makefile的137和156行,加上了"-arch i386"。构建,安装,通过。
分享到:
相关推荐
PyMacAdmin-1.0.macosx-10.5-i386.tar.gz是一个针对苹果Mac OS X 10.5(Leopard)系统,基于i386架构的Python库。此资源旨在为Mac用户带来更加便捷和高效的系统管理工具,帮助开发者和管理员在Mac平台上进行自动化...
Snow Leopard,中文名为“雪豹”,是继Leopard(10.5)之后的一个主要更新,它在性能优化、稳定性和功能增强上有着显著提升。 1. **性能优化**:Snow Leopard的主打特性就是“更轻更快”。通过采用64位内核,系统...
snow leopard10A432安装全过程 mac mac os x 安装snow leopard10A432安装全过程 mac mac os x 安装
在安装MAC OS X Snow Leopard时,Darwin引导加载程序负责启动操作系统内核,并加载必要的系统组件。在VMWare环境下,Darwin引导加载程序尤其关键,因为它使得虚拟机可以识别并处理MAC OS X的启动需求。 **引导镜像*...
- **GPT与MBR分区表**:现代Mac电脑使用GUID分区表(GPT),但在安装非Apple操作系统时,可能需要转换为传统的主引导记录(MBR)分区表。 - **安装流程**:每个操作系统都有其特定的安装步骤,例如FreeBSD可能需要...
推荐使用USB移动硬盘来制作做Mac OS X 的启动安装盘,先在USB中划分一个大于6.5GB的硬盘空间分区用来制作Mac OS X硬盘启动盘,然后在PC机的硬盘中划分一个大于20GB的硬盘分区用来安装Mac OS X Snow Leopard 10.6.2...
在VMWare中安装MAC OS X Snow Leopard 10.6是一种常见的在个人计算机上体验苹果操作系统的解决方案。这种方法避免了物理硬盘分区和刻录光盘的步骤,而是直接使用虚拟化软件和DMG镜像文件进行安装。以下是一个详细的...
1. **性能提升**:Snow Leopard Server在性能上进行了显著优化,尤其是对64位架构的支持,使其能够更好地利用硬件资源,提高运算速度和效率。 2. **OpenDirectory**:这是一个强大的目录服务,可以集中管理用户的...
必填下载,速度比较快,我用1晚上完成。好像是国外的种子,一般在10个以上。
【标题】"OS X_10.6 Snow Leopard 内置壁纸" 涉及的知识点主要集中在苹果公司的操作系统——OS X(现称macOS)的历史版本及其视觉设计元素上。OS X 10.6 Snow Leopard(雪豹)是苹果在2009年发布的一个重要操作系统...
在IT领域,尤其是在虚拟化技术的应用中,使用Windows 7下的VMware Workstation 7.0来安装Mac OS X Snow Leopard 10.6是一项既挑战性又极具实用价值的技术实践。本文将深入探讨这一过程中的关键步骤和技术要点,帮助...
Mac OS X Snow Leopard 原版系统,直接用磁盘工具恢复到优盘或者移动硬盘就可以启动安装,百度云盘
【Mac OS X Snow Leopard Server v10.6.3】是苹果公司推出的一款服务器操作系统,是Mac OS X Snow Leopard(雪豹)的服务器版本。这个版本的系统在2010年发布,主要针对企业、教育机构和其他组织提供强大的网络服务...
在安装过程中,我们需要按照屏幕提示操作,安装完成后,我们就可以在VMWare虚拟机中使用MAC OS X Snow Leopard 10.6了。 在安装过程中,我们需要注意以下几点: * 在虚拟机设置中,我们需要将硬件设置正确,否则...
【标题解析】 本教程主要关注的是如何在虚拟机软件VMware中安装Mac OS X Snow ...通过这个教程,用户将能够掌握在VMware中安装和使用Mac OS X Snow Leopard的基本技能,从而在非苹果硬件上体验和使用这一经典操作系统。
文件: E:\Apple\PC_Apple_Install.r02 大小: 14680064 字节 修改时间: 2010年8月22日, 17:54:15 MD5: 43175ADB0C1F2DB1778A372A54853E26 SHA1: BBAB78964B8966A0D6BF73D8767618754CD1131A CRC32: 2F6341EC
在 Mac OS X Snow Leopard 上安装 Ruby 并搭建 Ruby on Rails 开发环境虽然存在一定的挑战性,但通过上述步骤可以顺利完成。无论是使用 Homebrew 还是 rbenv,都能够确保 Ruby 的稳定安装和版本管理。同时,借助 ...
描述中提到的“mac下启动安装工具Snow Leopard”意味着这是一个用于在Mac计算机上安装Snow Leopard操作系统的程序。这个工具通常是一个DVD镜像或一个可引导的USB驱动器,用户可以通过它来启动Mac并进行系统安装。 ...