项目设置
Last updated
Last updated
这篇文章讨论如何向 Python 程序中引入 Python 库。
LeapMotion 的 Python API 作为 Python 扩展模块提供了一个包含 Python本身及本地代码。Python API 支持 Python 2.7。
你可以在下载的 LeapMotion SDK 包的lib
文件夹中找到这些库文件。在 WIndows 和 Linux 上,32位 Python 需要使用 x86的库文件,64位的 Python 需要使用 x64 的库文件。
LeapMotion 没有把库作为一个标准的 Python 包直接安装到用户电脑上。而是把库作为你应用的一个内置模块,你应该吧库和你的应用程序一起发布。
为了引入 Leap 模块,这些苦文件必须放置到和 Python 运行时可以找到的地方。最简单的方法就是把库文件和程序代码放到同一个目录中。Python 会在同一个目录里导入这个模块。
如果你想把库放在与你源码不同的目录,你可以在引入模块前把库文件的路径添加到sys.path
中:
例如,你项目的文件结构可以像这样:
你也可以将 LeapMotion 库文件拷贝到lib
子文件夹中(确保复制的是适合你的平台架构的文件)。比如在 Mac 上,你的项目结构可以这样:
于是你可以使用下面的方法在Snakes.py
或者Ladders.py
中引入 Leap 模块:
这种引入的方式假设你的 Python 文件总是运行在当前工作目录下运行。为使得主程序能够从任何位置运行时都能正常工作,你可以使用 Pythoninspect
模块获取包含源文件的路径并设置sys.path
关联到那个文件件:
注意:如果你开发的程序只为你自己使用,你可以把 Leap 模块和其他需要的库放在任何位置,比如其中一个文件夹放置sys.path
变量,另一个文件夹是你的PYTHONPATH
环境变量等等。只需在更新 SDK 的时候你还能记得你把它们放到哪儿了。然而,自从 Leap 模块目前不在 Python 包管理器有效,不推荐吧 LeapMotion 拷贝到 Python 标准模块索引的位置。这样做会导致多个程序尝试安装他们不同的 LeapMotion 库时而发生冲突。
要同时支持 Windows 和 Linux 32位及64位架构,你可以运行时检查然后用 sys.path
设置正确的文件即可。在 Mac 中,LeapMotion 库是通用二进制的,支持两种架构,这种技术是不需要的。
以 SnakeAndLadders 为例,在程序里你应该吧两种库都分别放到两个文件夹中,例如:
然后引入合适的 Leap 模块:
相同的办法你可以同时支持更多平台。
在 Mac、Linux、或者自荐的 Python 中使用 LeapMotion 的 Python 库,你必须更新 LeapPython.so
的加载路径到 Python 的相应实例。
首先,运行otool
工具来显示当前的加载路径:
显示结果与下面很相似:
Python位于 /Library/Frameworks/Python.framework/Versions/2.7/Python
这行,它需要用install_name_tool
工具来修改。
其次,使用 install_name_tool
工具把 Python 的路径修改到你所需要的位置,例如:
注意:otool
和install_name_tool
都是标准的 Linux 和 OS X 命令行工具。
LeapMotion SDK 包含的 LeapPython 库文件只支持 Python2.7。然而 SDK 还包含 SWIG 结构文件,它可以用来生成 LeapPython 源代码。所以,高级用户可以生成并编译他们自己的 LeapPython。作为指导,请参考使用 SWIG2.0.9 生成 Python3.3.0 包。
Windows
Mac
Linux
Python模块
lib/Leap.py
lib/Leap.py
lib/Leap.py
32位本地库
lib/x86/LeapPython.pyd lib/x86/Leap.dll
lib/x86/LeapPython.so lib/x86/libLeap.so
64位本地库
lib/x64/LeapPython.pyd lib/x64/Leap.dll
lib/x64/LeapPython.so lib/x64/libLeap.so
通用二进制本地库
lib/LeapPython.so lib/libLeap.dylib