2014-02-18 4 views
0

Я новичок в Cygwin и в настоящее время я пытаюсь установить модуль obspy в Python, но у меня есть следующие проблемы:Установите 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 = 1.7.28 (0,271/5/3)

питона = 2.7.3 (по умолчанию, 18 декабря 2012 13:50:09) [GCC 4.5. 3]

Thx

ответ

0

obspy создает зависимые от системы имя расширения, основываясь на значении platform.system(), которая равна uname -s. В Cygwin это будет, например, CYGWIN_NT-6.1 (в зависимости от версии Windows: -WOW64 также добавлен для i686 Cygwin на Windows x64). Проблема в том, что имя модуля Python не может содержать дефис или точку (последний из которых является индикатором пространства имен).

Следовательно, вам необходимо будет установить это вручную из источника после внесения некоторых изменений. Я рекомендую использовать sys.platform (который равен cygwin) вместо platform.system() везде, где он используется при замене имени библиотеки; что требует добавления нескольких import sys, где еще нет import ред.

Как только вы это сделаете, вы обнаружите, что включенное libmseed не компилируется из-за противоречивых typedefs. Фиксирование, которое требует добавления || defined(__CYGWIN__) к условиям Linux или BSD в obspy/mseed/src/libmseed/lmplatform.h.

Я сделал полный патч here.

+0

Thx за ваш ответ. В моем случае я решил проблему, установив более старую версию obspy: easy_install obspy-0.8.4-py2.7-win32.egg. В этом случае у меня не было никаких проблем. Теперь это работает. – somename