2014-02-18 211 views
0

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

$ 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 = 28年1月7日(0.271/5/3)

蟒= 2.7.3(默认情况下,2012年12月18日,13时50分09秒)[GCC 4.5。 3]

THX

回答

0

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

因此,您必须在进行一些修改后从源手动安装。我推荐使用sys.platform(这只是cygwin)而不是platform.system(),无论它用于库名替换;这确实需要添加几个import sys而不是已经编辑的import

一旦你这样做了,你会发现包含的libmseed由于冲突的typedefs而不能编译。解决这个问题需要将|| defined(__CYGWIN__)添加到obspy/mseed/src/libmseed/lmplatform.h的Linux或BSD条件中。

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

+0

Thx为您的反应。在我的情况下,我通过安装旧版本的obspy解决了这个问题:easy_install obspy-0.8.4-py2.7-win32.egg。在这种情况下,我没有任何问题。现在它可以工作。 – somename