""python
github地址 :https://github.com/emmetio/pyv8-binarieslinux
""git
安裝依賴github
首先安裝依賴:Boost, 這一步網上的大部分教程都差很少,也是必須的;bash
1
2
3
|
sudo
apt-get
install
scons
sudo
apt-get
install
libboost-dev libboost-thread-dev
sudo
apt-get
install
libboost-system-dev libboost-python-dev
|
安裝PyV8
svn
網上的大部分教程均是使用svncheckout出V8,PyV8的代碼,而後再設置什麼V8的目錄爲V8_HOME最後在編譯PyV8;先不說能不能使用svn遷出,(反正我FQ都沒有遷出來),後來去google.code網站上, 下載了源代碼,結果編譯期間出各類錯誤,根本沒辦法執行。 測試
還有一些直接使用pip安裝的教程,也是報各類錯,缺乏這個啦,缺乏那個啦。
因而就想直接找到二進制文件,直接拷到python的包目錄得了。結果這條路還算順暢!最終比較輕鬆的安裝成功了。
二進制文件googlecode官網有,有人在github上也提供了很全面的二進制安裝文件https://github.com/emmetio/pyv8-binaries 找到適合你機器的版本下載.網站
解壓出來應該有以下兩個文件:一個源碼,一個二進制文件。通常Python的第三方包有這倆文件就夠了,google
PyV8.pyspa
_PyV8.so
而後把這兩個文件拷到你的python第三方包的目錄裏面就好,好比個人是:
1
2
|
cd
pyv8
//
進入解壓後的目錄
sudo
cp
*
/usr/lib/python2
.7
/dist-packages/
|
以後嘗試導入import PyV8結果報如下的一個錯誤:
ImportError: libboost_python_py27.so.1.54.0: cannot open shared object file: No such file or directory
當時看到這個錯誤,而後想到我以前已經安裝好了依賴呢,爲啥還會報這個錯誤呢。
大體查了一下,有的說是連接庫路徑設置問題,以後檢查了一下libboost_python_py27.so.1.54.0
shomy@LiuPC:blog$ find /usr/lib/ -name libboost_python-py27.so.1.54.0
/usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.54.0
果真有這個連接庫,那爲啥檢測不到呢,問題就出在環境變量LD_LIBRARY_PATH上,由於python尋找連接庫的時候,是從該路徑裏面找的。
然而我echo $LD_LIBRARY_PATH卻啥都沒有,只要把上面的路徑加入到環境變量就能夠吧。--因而在.bashrc最後加入了一行:(路徑可能不一致,請根據本身的實際狀況添加)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu
保存退出以後,再用source ~/.bashrc 重載一下就行了。再一次import PyV8 正常!
執行下面的測試代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import
PyV8
ctxt
=
PyV8.JSContext()
ctxt.enter()
func
=
ctxt.
eval
(
"""
(function(){
function hello(){
return "Hello world.";
}
return hello();
})
"""
)
print
func()
|
執行輸出Hello World 就說明安裝成功了。能夠去模擬登陸了~~~