2010-03-03 177 views
22

我已經認識到ElementTree不會做我想做的事情。我已經檢查了lxml的文檔,看起來它將用於我的目的。爲了獲得lxml,我需要獲得easy_install。所以我從here下載它,並把它放在/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/。然後我去了那個文件夾,跑了sh setuptools-0.6c11-py2.6.egg安裝easy_install ...以安裝lxml

安裝成功。然後我興奮起來,因爲我認爲easy_install的重點是我可以通過easy_install lxml進行安裝,並且lxml會神奇地下載,構建並正確安裝,爲導入享受做好準備。所以我跑了easy_install lxml。我粘貼下面的結果。我該怎麼辦?

easy_install lxml 
Searching for lxml 
Reading http://pypi.python.org/simple/lxml/ 
Reading http://codespeak.net/lxml 
Best match: lxml 2.2.6 
Downloading http://codespeak.net/lxml/lxml-2.2.6.tgz 
Processing lxml-2.2.6.tgz 
Running lxml-2.2.6/setup.py -q bdist_egg --dist-dir /var/folders/49/49N0+g5QFKCm51AbzMtghE+++TI/-Tmp-/easy_install-rxbP6K/lxml-2.2.6/egg-dist-tmp-fjakR0 
Building lxml version 2.2.6. 
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available. 
Using build configuration of libxslt 1.1.12 
Building against libxml2/libxslt in the following directory: /usr/lib 
unable to execute gcc-4.0: No such file or directory 
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1 
+1

(回覆:您的代碼編輯器問題)縮進四個空格來創建代碼塊,或者在突出顯示某些內容時單擊編輯器中的「01010」按鈕。 – 2010-03-03 00:33:38

回答

23

首先我們不再使用easy_install。我們使用pip。請使用pip代替。

爲了解決您的特殊問題,正如評論指出的,您錯過了GCC。在OS X上,Xcode命令行工具提供了GCC以及在OS X上構建軟件所需的許多其他程序。對於OS X 10.9(小牛)和更新版本,可以通過App Store安裝Xcode,或者只安裝Xcode命令行工具與

xcode-select --install 

有關詳細信息,請參閱Apple Developer FAQ或搜索「安裝Xcode的命令行工具」的網頁。

對於舊版本的OS X,您可以從downloads page of the Apple Developer website獲得Xcode命令行工具(需要免費註冊)。

一旦您安裝了GCC,如果您的系統上未安裝C/C++庫依賴關係,編譯期間仍可能會遇到錯誤。在OS X上,Homebrew項目是安裝和管理這種依賴關係的最簡單方法。按照說明家釀網站上您的系統上安裝自制軟件,然後發出

brew update 
brew install libxml2 libxslt 

可能導致你的情況更麻煩,您放置下載的setuptools在/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/。請不要將任何文件下載到此位置。相反,我建議你將文件下載到你的主目錄,或者你平常的目錄Downloads。下載完成後,您應該運行sh setuptools-X.Y.Z.egg,然後將其正確安裝到合適的site-packages中,並將可執行文件easy_install放在您的路徑上。

+0

+1表示我們應該使用pip。我不知道。軟件包正常工作時很好。 – Muhd 2011-10-29 02:46:47

+2

對於偉大的圖形爲+1 – Purrell 2012-01-27 22:45:15

+0

上面的點鏈接已損壞。我認爲是這樣的:https://pip.pypa.io/en/latest/ – 2015-02-03 18:59:22

2

看起來像lxml想構建一個需要訪問C編譯器的擴展。你將需要gcc。嘗試運行sudo apt-get install build-essential並且應該解決這個特定的問題。

+0

sudo apt-get install gcc sudo:apt-get:command not found – Alex 2010-03-03 01:06:48

+1

這是什麼OS /發行版? – 2010-03-03 01:12:13

+0

OSX 10.5.8,python 2.6 – Alex 2010-03-03 01:14:52

13

確保您擁有的libxml2-dev的和libxslt1-dev的安裝

apt-get install libxml2-dev 
apt-get install libxslt1-dev 

那麼你的安裝應正確地構建。

+0

感謝您指出這一點 – Purrell 2012-01-27 22:45:34

+0

謝謝。有效! – 2012-06-14 19:47:19

10

嘗試: sudo apt-get install python-lxml

+0

對於Python3,使用「apt-get install python3-lxml」 – wheleph 2011-10-01 19:20:02

+0

更好地使用pip。它會給你一個比你的包維護者更新的版本。遲早你會很高興你使用它。 – mlissner 2012-11-27 05:15:39

2

確保所有下面的包在系統上安裝第一:

gcc gcc-c++ python-devel libxml2 libxml2-dev libxslt libxslt-dev 

您應該能夠使用的一些變種進行安裝: sudo易於得到安裝 sudo yum install

只有在成功安裝上述所有設備之後,才能嘗試運行:

sudo pip install lxml