2014-02-18 165 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