2014-01-21 45 views
1

我有問題在身材勻稱使用距離方法(我懷疑與geos軟件包不兼容)。身材和geos打破距離的方法

下面的代碼:

from shapely.geometry import Point 
print Point(0,0).distance(Point(1,1)) 

創建下列錯誤:

python: GeometryComponentFilter.cpp:34: virtual void geos::geom::GeometryComponentFilter::filter_ro(const geos::geom::Geometry*): Assertion `0' failed. 
Aborted (core dumped) 

我運行CentOS 6的,Python 2.6中,GEOS 3.4.2(雖然它從創建到libgeos_c鏈接1.8.2)

使用谷歌搜索產生了幾個老職位,這並沒有真正幫助我。

感謝, 拉茲

+0

您是如何安裝GEOS和Shapely的? –

+0

通過下載壓縮文件,做配置,製作和安裝,使用pip,GEOS。 – Raz

回答

1

這看起來像一個GEOS錯誤(#535)。作爲變通,嘗試獲取一個開發快照that appears to solve this issue

svn co http://svn.osgeo.org/geos/[email protected] geos-svn 
cd geos-svn 
./autogen.sh 
./configure 
make 
make check 

如果最後一個命令拋出任何類似的錯誤,考慮派遣反饋bug報告。但如果一切都很好,那麼它應該適合身材勻稱。作爲根:

make install 
ldconfig 
+0

謝謝。 make check沒有拋出任何類似的錯誤(順便說一句,我配置了--enable-python)。但是,安裝的版本仍然存在相同的問題。 libgeos_c上的時間標記看起來很近,所以我希望我真的使用最新的庫。 – Raz

+0

請以root用戶身份嘗試'ldconfig'來確保動態庫鏈接是最新的。我有一種感覺,它仍然連接到一個較舊的破碎版本。另外,'--enable-python'還沒有直接通過GEOS得到很長時間的支持。 –

+0

ldconfig/usr/local/lib解決了這個問題。謝謝!當不使用--enable-python時,配置說:Python綁定:false。這個好嗎? – Raz