将cmake与Enthow一起用于python包装

将cmake与Enthow一起用于python包装,python,python-2.7,cmake,enthought,Python,Python 2.7,Cmake,Enthought,我最近开始尝试从ipython笔记本电脑切换到canopy,我从MATLAB切换到了。我正在努力获得类似matlab的开发和研究经验 我正在跨平台进行这些设置,但我是从OSX开始的 我一直在尝试安装在canopy中使用的软件包,其中一些需要编译,比如SimpleTk和VTK6.0。我已经在常规的python2.7安装中成功地安装了这两个组件,但是在为canopy安装它们时遇到了一些问题。现在,我正在用CMAKE重新编译simpletk/Superbuild,以重新创建python包装器。它要求提

我最近开始尝试从ipython笔记本电脑切换到canopy,我从MATLAB切换到了。我正在努力获得类似matlab的开发和研究经验

我正在跨平台进行这些设置,但我是从OSX开始的

我一直在尝试安装在canopy中使用的软件包,其中一些需要编译,比如SimpleTk和VTK6.0。我已经在常规的python2.7安装中成功地安装了这两个组件,但是在为canopy安装它们时遇到了一些问题。现在,我正在用CMAKE重新编译simpletk/Superbuild,以重新创建python包装器。它要求提供python可执行文件include dir和python库位置。我发现python可以从casopy中的sys.executable执行,include dir带有'mdfind-name python.h,这是默认位置,我使用了默认的python库

这些是

可执行的:/Users/jmerkow/Library/enthund/Canopy_64bit/User/bin/python

包括:/System/Library/Frameworks/Python.framework/Headers

Lib:/usr/Lib/libpython2.7.dylib

但我在make时得到以下错误:

AssertionError: Filename /Applications/Canopy.app/appdata/canopy-1.1.0.1371.macosx-x86_64/Canopy.app/Contents/lib/python2.7/os.py does not start with any of these prefixes: ['/Users/jmerkow/Library/Enthought/Canopy_64bit/User', '/Library/Python/2.7/site-packages', '/Users/jmerkow/Library/Enthought/Canopy_64bit/User/Extras/lib/python', '/Users/jmerkow/Library/Python/2.7/site-packages', '/Users/jmerkow/.local/lib/python/2.7/site-packages', '/Users/jmerkow/Library/Python/2.7/lib/python/site-packages']
ERROR
-- Installing numpy from  /Users/jmerkow/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/numpy to /numpy
ERROR
/bin/sh: ../Testing/Installation/PythonVirtualenv/bin/python: No such file or directory
make[5]: *** [lib/_SimpleITK.so] Error 127
make[4]: *** [Wrapping/CMakeFiles/SimpleITK_PYTHON.dir/all] Error 2
make[3]: *** [all] Error 2
make[2]: *** [SimpleITK-prefix/src/SimpleITK-stamp/SimpleITK-build] Error 2
make[1]: *** [CMakeFiles/SimpleITK.dir/all] Error 2
make: *** [all] Error 2
此外,任何其他帮助我完成这项工作的建议都是非常受欢迎的

编辑如下

因此,我尝试使用以下方法进行编译:

/System/Library/Frameworks/Python.framework/Versions/Current/bin/Python /System/Library/Frameworks/Python.framework/Versions/Current/include/python2.7/ /System/Library/Frameworks/Python.framework/Versions/Current/lib/libpython2.7.dylib

此文件已编译并创建,文件名为

SimpleTk-0.7.0.dev88_ge297c-py2.7-macosx-10.8-intel.egg

但是当我使用enpkg时,我得到了以下错误

回溯(最近一次呼叫最后一次): 文件“/Users/jmerkow/Library/enthught/Canopy_64bit/User/bin/enpkg”,第10行,在 sys.exit(main()) 文件“/Applications/Canopy.app/appdata/Canopy-1.1.0.1371.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site packages/enshiller/main.py”,主文件第702行 请求追加(请求(名称+版本)) 文件“/Applications/Canopy.app/appdata/Canopy-1.1.0.1371.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site packages/enshiller/resolve.py”,第32行,ininit 引发异常(“不是有效的要求:%r”%req\u字符串) 例外:无效要求:“SimpleTk 0.7.0.dev88_ge297c-py2.7-macosx-10.8-intel.egg”

使用easy_install,我遇到以下错误:

处理SimpleTk-0.7.0.dev88_ge297c-py2.7-macosx-10.8-intel.egg 删除“/Users/jmerkow/Library/enthught/Canopy_64bit/User/lib/python2.7/site packages/simpletk-0.7.0.dev88_ge297c-py2.7-macosx-10.8-intel.egg”(及其下的所有内容) 创建/Users/jmerkow/Library/enthught/Canopy_64bit/User/lib/python2.7/site-packages/simpletk-0.7.0.dev88_ge297c-py2.7-macosx-10.8-intel.egg 将SimpleTk-0.7.0.dev88_ge297c-py2.7-macosx-10.8-intel.egg提取到/Users/jmerkow/Library/enthught/Canopy_64bit/User/lib/python2.7/site-packages SimpleTk 0.7.0.dev88-ge297c已经是easy-install.pth中的活动版本

Installed/Users/jmerkow/Library/enthught/Canopy_64bit/User/lib/python2.7/site-packages/simpletk-0.7.0.dev88_ge297c-py2.7-macosx-10.8-intel.egg SimpleTk的处理依赖项==0.7.0.dev88-ge297c 搜索SimpleTk==0.7.0.dev88-ge297c 阅读超链接 阅读超链接 阅读超链接 找不到SimpleTk==0.7.0.dev88-ge297c的本地包或下载链接 错误:找不到适合Requirement.parse的分发('SimpleTk==0.7.0.dev88-ge297c')

看起来是我安装的,所以我尝试导入:

导入SimpleTk

致命的Python错误:PyThreadState\u Get:没有当前线程

中止陷阱:6


您已经将SimpleTk配置为使用系统python可执行文件、库和包含文件。但是,您正在尝试使用树冠分布。它们不是二进制兼容的,不匹配导致了这种类型的程序终止

已正确找到可执行文件: /Users/jmerkow/Library/enthund/Canopy_64bit/User/bin/python

但是您需要使PYTHON_INCLUDE_DIR和PYTHON_库保持一致。请尝试以下命令以帮助您确定正确的路径:

find/Users/jmerkow/Library/enthught/Canopy_64bit/-name Python.h find/Users/jmerkow/Library/enthught/Canopy_64bit/-name lib python*.dylib