2012-04-18 112 views
0

我自學Python,感謝我在遇到困難時獲得的巨大幫助,我對自己的進步感到滿意。Python庫需要與PyKML進行交互。需要libxml2和libxslt的一些指導

我正在研究一個項目,它從幾個API中檢索一堆記錄,數據地址,提取地理位置(使用GeoPy),現在我想在Google Earth中將它們可視化。

我想要做的完美庫是PyKML。它看起來非常簡單,特別是因爲我想在PyKML文檔中重新創建「circle around locations」之旅,使我能夠編程創建KML文檔。

我遇到的問題是PyKML依賴於lxml,而lxml依賴於libxml2 & libxslt,我還沒有能夠安裝它們中的任何一個。

我不確定這些庫的用途,我甚至不知道我是否可以在我的機器上運行(我正在使用Windows)。 libxml2和libxslt的文檔對我來說尤其令人困惑,因爲提到了C語言和編譯器。

有人可以指示我「安裝」並測試lxml,libxml2和libxslt以用於Python的正確方法是什麼?是否有人知道其他允許編程創建KML文檔的Python庫,並且最好不依賴於其他庫?

在此先感謝您的幫助。乾杯


解決

我通過卸載用於Windows的Python的64位版本和安裝32位版本解決了這個問題。

此外,我從這裏安裝LXML 2.3的32位二進制編譯爲Python 2.6:

http://pypi.python.org/pypi/lxml/2.3

我認爲這個問題是一些Python 2.6 64的部件之間的不兼容,以及所有lxml需要的庫。

+1

您需要說明您正在運行的平臺。你嘗試過'easy_install PyKML'嗎? – 2012-04-18 18:29:12

回答

0

我通過卸載64位版本的Python for Windows並安裝32位版本解決了這個問題。

此外,我從這裏安裝LXML 2.3的32位二進制編譯爲Python 2.6:

http://pypi.python.org/pypi/lxml/2.3

我認爲這個問題是一些Python 2.6 64的部件之間的不兼容,以及所有lxml需要的庫。

2

但是,所有這些庫應該安裝easy_install

PyKML文件說

Given this, the first step to installing pyKML is to get lxml running on your system. Refer to the lxml website for instructions on how to install lxml .

如果你是一個類Unix系統(包括OS X)上,libxml2和是的libxslt可能已經安裝了,也可以通過本機軟件包管理器輕鬆安裝。

對於Windows,LXML提供了libxml2和中的libxslt靜態編譯(如lxml install documentation說明)預建的雞蛋,這樣你就不會需要單獨安裝它們。從LXML文件:

Get the easy_install tool and run the following as super-user (or administrator):

easy_install --allow-hosts=lxml.de,*.python.org lxml 

On MS Windows, the above will install the binary builds that we provide. If there is no binary build of the latest release yet, please search PyPI for the last release that has them and pass that version to easy_install.

看來,最新的版本是2.3,所以只有當上述命令不起作用,請嘗試:

easy_install --allow-hosts=lxml.de,*.python.org lxml==2.3 

從你聽到的錯誤信息是easy_install PyKML,這聽起來像easy_install沒有找到你安裝的lxml軟件包,並且正在嘗試爲PyKML安裝它。您可以試着用easy_install --no-deps pykml來強制這個問題,它會忽略依賴關係,只安裝PyKML(這是一個簡單的python-only庫)。然後測試import pykml是否有效,以及是否完成。

+0

弗朗西斯,謝謝你的回覆。我正在使用Windows,我在原文中提到過它。無論如何,我仍然無法讓lxml工作(我還沒有能夠安裝或測試其他兩個庫)。 – 2012-04-18 19:19:00

+1

Windows的lxml安裝文檔明確指出,它通過'easy_install'提供了一個預編譯的二進制文件,其中編譯了libxml2和libxslt,因此您不需要單獨安裝它們。回答更新了對windows的明確指示,但這並不是你從lxml安裝文檔中學到的東西。 – 2012-04-18 20:41:27

+0

謝謝。從python中輸入「Import lxml」似乎沒問題,「lxml ??」在ipython中返回一個簡短的描述,等等。現在,當執行「easy_install pykml」時,它搜索庫,找到一個匹配,下載,開始構建lxml 2.3.4版本,並說「沒有Cython構建」錯誤:'xslt-config '未被識別爲內部或外部命令,可操作程序或批處理文件。 **確保安裝了libxml2和libxslt的開發包。然後幾個警告。由於我使用Windows 7 64,我懷疑那裏有問題。我怎樣才能在這裏發佈警告的JPG? – 2012-04-18 21:07:04