2016-03-07 94 views
0

我剛買了一臺帶有OSX 10.11 El Capitan的新MacBook Pro。ImportError:Mac OSX上沒有任何名爲lxml的模塊10.11

我正在運行Google App Engine本地開發啓動python,這是我在日誌中看到它時,它到達import lxml

"ImportError: No module named lxml" 

我跟着從lxml website

sudo pip install lxml 

包安裝的指示,但不能由路徑蟒蛇可以看出。我更新了我的路在.bashrc.bash_profile有:

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/lib/python2.7/site-packages/:$PATH 

然後發現這篇文章Installing lxml on Mac OSX (10.11) inside a virtualenv with pip

$ STATIC_DEPS=true pip install lxml 

它再次安裝,但無法找到。

我甚至嘗試從源代碼編譯和安裝macports,因爲它嵌入,但仍然沒有運氣。

我看了lxml團隊感到很沮喪,OSX和過時的庫和所有的混亂。

UPDATE

關於所提出的意見,它不是一個app.yaml的庫聲明,其不可能的具體到GAE的問題,因爲它似乎Python和OXS-elcapitan之間的可能性較大。

也是我得到這個不尋常的消息

The directory '/Users/[username]/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

我嘗試使用sudo -H但沒有任何解決的路徑。

但它確實表明10.11的變化可能是問題的一部分。

+0

您運行'source〜/ .bash_profile'加載更新的路徑嗎? – Forge

+0

可能重複[ImportError:No Module named simplejson](http://stackoverflow.com/questions/2604841/importerror-no-module-named-simplejson) –

+1

這與appengine有什麼關係? –

回答

0

AppEngine使用它自己的環境來反映他們的服務器,並且沒有看到你在本地安裝的庫。

要查看它應該位於項目的根目錄(app.yaml所在的位置)的包。

但也有運行時提供libraries-閱讀節「使用運行時提供的庫與本地開發服務器」在https://cloud.google.com/appengine/docs/python/tools/libraries27

也許你將需要添加到app.yaml中

libraries: 
- name: lxml 
    version: "2.3.5" 
+0

一些Python庫(例如lxml)依賴於平臺,必須在本地安裝可以在開發服務器上使用它們。 – pgiecek

+0

沒錯,但這並不意味着你不應該修改app.yaml以允許appengine查看/使用它們。 –

+0

他應該在app.yaml中聲明庫,但是如果我理解正確,他不能在他的計算機上安裝庫。 – pgiecek

0

STATIC_DEPS並沒有爲我工作(貌似相關的FTP站點分別下降?),但是這並獲得成功:

C_INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2:$C_INCLUDE_PATH pip install lxml