在cygwin中安装obspy

时间:2014-02-18 12:21:55

标签: python linux cygwin

我是Cygwin的新手,目前我正在尝试在python中安装一个模块obspy,但我有以下问题:

$ easy_install obspy-0.9.0-py2.6-win32.egg
Processing obspy-0.9.0-py2.6-win32.egg
creating /usr/lib/python2.7/site-packages/obspy-0.9.0-py2.6-win32.egg
Extracting obspy-0.9.0-py2.6-win32.egg to /usr/lib/python2.7/site-packages
Adding obspy 0.9.0 to easy-install.pth file
Installing obspy-mseed-recordanalyzer script to /usr/bin
Installing obspy-scan script to /usr/bin
Installing obspy-dataless2xseed script to /usr/bin
Installing obspy-reftek-rescue script to /usr/bin
Installing obspy-xseed2dataless script to /usr/bin
Installing obspy-indexer script to /usr/bin
Installing obspy-print script to /usr/bin
Installing obspy-runtests script to /usr/bin
Installing obspy-dataless2resp script to /usr/bin
Installing obspy-plot script to /usr/bin
Installing obspy-mopad script to /usr/bin

Installed /usr/lib/python2.7/site-packages/obspy-0.9.0-py2.6-win32.egg
Processing dependencies for obspy==0.9.0
Searching for obspy==0.9.0
Reading http://pypi.python.org/simple/obspy/
Best match: obspy 0.9.0
Downloading https://pypi.python.org/packages/source/o/obspy/obspy-0.9.0.zip#md5=f720f675e66e8b2b6518e41b9ab9ada4
Processing obspy-0.9.0.zip
Writing /tmp/easy_install-RfU4Qv/obspy-0.9.0/setup.cfg
Running obspy-0.9.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-RfU4Qv/obspy-0.9.0/egg-dist-tmp-FLcOHj
error: Setup script exited with error: mismatch of extension names: build/libtau_CYGWIN_NT-5.1_32bit_py27.pyf provides 'libtau_CYGWIN_NT' but expected '1_32bit_py27'

说实话我不太明白这个问题以及如何解决它。有人可能会有一些想法吗?

我正在跑步:

cygwin = 1.7.28(0.271 / 5/3)

python = 2.7.3(默认,2012年12月18日,13:50:09)[GCC 4.5.3]

THX

1 个答案:

答案 0 :(得分:0)

obspy根据platform.system()的值构建依赖于系统的扩展名,该值等于uname -s。在Cygwin上,那将是例如CYGWIN_NT-6.1(取决于Windows的版本;在Windows x64上也为i686 Cygwin添加了-WOW64)。问题是Python模块名称不能包含连字符和点(后者是命名空间指示符)。

因此,您必须在进行一些修改后从源手动安装。我建议在库名称替换中使用sys.platform(只是cygwin)而不是platform.system();这确实需要添加一些import sys尚未import编辑的内容。

一旦你这样做,你会发现由于typedef冲突,所包含的libmseed无法编译。修复需要在|| defined(__CYGWIN__)中的Linux或BSD条件中添加obspy/mseed/src/libmseed/lmplatform.h

我已经提供了完整的补丁here