2014-04-07

Windows 下安裝 lxml

你是否遇到在 Windows 下安裝 lxml 時, 有以下訊息

C:\>pip install lxml
.......略
.......
c:\users\user\appdata\local\temp\pip_build_user\lxml\src\lxml\includes\etree_defs.h(9) : fatal e
rror C1083: 無法開啟包含檔案: 'libxml/xmlversion.h': No such file or directory

C:\Python32\lib\distutils\dist.py:257: UserWarning: Unknown distribution option: 'bugtrack_url'




這時候你若上 google 找解決方法, 會找到很多解法, 不外乎
1. 叫你安裝 minGW
2. 叫你去  http://xmlsoft.org/sources/win32/ 下載 sources, 然後一一的放到正確位置 (參考這篇 http://zzq635.blog.163.com/blog/static/19526448620132845436686/)



關於第 1 點, 如果別人叫你安裝 minGW compiler 你就傻傻的照做, 這時候你可能就要檢討一下你自己, 為什麼你不會發現 python 用 VC compile, 而你的 lxml 為什麼要用 minGW compile? Compile 出來的東西會不會有衝突? 我只是要用個 lib 為什麼還要source code + 自己 compile? 這應該是立即可發現的小矛盾及不合理.


關於第 2 點, 這的確是個解決方法, 但你會不會覺得 "只是要裝個 lxml library 來用, 為什麼還要 compile 東 compile 西啊?". 已經習慣在 Linux 環境的工程師想必已經習慣麻木了, 但在 Windows 下的工程師一定一堆疑惑. 而且要搬來搬去的東西太多了, 除非你發現了 lxml 的 bug, 你要修改重新 compile. 不過, 我可以保證, 99.999% 的人是不會有機會改官方的東西的 原因很簡單, 你不會想要下次官方出新版, 舊bug還在, 故你最好的方法是回報官方.

其實 Python 下, 有二大安裝工具, 一個是 easy_install, 另一個是 pip. 這兩個目前我的小小經驗告訴我各有好壞, 所以你可以交互搭配使用.

雖然大部分我都是用 pip 安裝, 但這裡, 我的解決方法是直接換成 easy_install 
#easy_install lxml  <-- 命令


C:\Python32>easy_install lxml
Searching for lxml
Reading https://pypi.python.org/simple/lxml/
Best match: lxml 3.3.4
Downloading https://pypi.python.org/packages/3.2/l/lxml/lxml-3.3.4.win32-py3.2.exe#md5=41a2c3891ec16
6ce475b9587856abdc3
Processing lxml-3.3.4.win32-py3.2.exe
creating 'c:\users\user\appdata\local\temp\easy_install-v1c1te\lxml-3.3.4-py3.2-win32.egg' and add
ing 'c:\users\user\appdata\local\temp\easy_install-v1c1te\lxml-3.3.4-py3.2-win32.egg.tmp' to it
creating c:\python32\lib\site-packages\lxml-3.3.4-py3.2-win32.egg
Extracting lxml-3.3.4-py3.2-win32.egg to c:\python32\lib\site-packages
Adding lxml 3.3.4 to easy-install.pth file

Installed c:\python32\lib\site-packages\lxml-3.3.4-py3.2-win32.egg
Processing dependencies for lxml
Finished processing dependencies for lxml



測試一下是否 work

C:\Python32>python
Python 3.2.5 (default, May 15 2013, 23:06:03) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
>>>


大功告成
只要一行安裝命令, 是不是簡單很多呢?



註:
在 linux(centos)上的話,很簡單你只要
#yum install libxslt-devel libxml2-devel



櫻花草歌詞

作詞:李天龍
作曲:李天龍
編曲:許恆瑞

晚風吹動著竹林 月光拉長的身影
螢火蟲 一閃閃 滿山飛舞的錢幣
天上銀河在發光 地上風鈴來歌唱
織女星 在遠方 古老浪漫的神話
流水走過 春夏四季的變換
幸福 在蔓延 愛你永恆不孤單

戀人手中櫻花草 春彩滿佈的微笑
種下了 一朵朵 青春璀璨的年少
戀人懷中櫻花草 聽見胸膛心在跳
偷偷的 在思念 那是我們相愛的記號
啦啦啦......

遠方鐘聲再響起 蛙鳴唱起了搖籃曲
白沙灘 月彎彎 愛你香甜的夢裡
天上銀河在發光 地上風鈴來歌唱
織女星 在遠方 許下愛戀的願望
流水 走過 春夏四季的變換
幸福 在蔓延 愛你永恆不孤單


戀人手中櫻花草 春彩滿佈的微笑
種下了 一朵朵 青春璀璨的年少
戀人懷中櫻花草 聽見胸膛心在跳
偷偷的 在思念 那是我們相愛的 味道


沒有留言:

張貼留言