2015-08-24 5 views
1

Я установил libv8 и libboost-all-dev пакетов Ubuntu, а затем побежалКак установить pyv8 в Ubuntu 14.04?

sudo pip install pyv8 

И получил:

building '_PyV8' extension 

creating build/temp.linux-x86_64-2.7 

creating build/temp.linux-x86_64-2.7/src 

x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DBOOST_PYTHON_STATIC_LIB -Ilib/python/inc -Ilib/boost/inc -Ilib/v8/inc -I/usr/include/python2.7 -c src/Exception.cpp -o build/temp.linux-x86_64-2.7/src/Exception.o 

cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default] 

src/Exception.cpp: In static member function ‘static void ExceptionTranslator::Construct(PyObject*, boost::python::converter::rvalue_from_python_stage1_data*)’: 

src/Exception.cpp:207:25: warning: unused variable ‘cpp_err’ [-Wunused-variable] 

    CJavascriptException* cpp_err = 

         ^

x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DBOOST_PYTHON_STATIC_LIB -Ilib/python/inc -Ilib/boost/inc -Ilib/v8/inc -I/usr/include/python2.7 -c src/Context.cpp -o build/temp.linux-x86_64-2.7/src/Context.o 

cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default] 

In file included from src/Context.h:7:0, 

       from src/Context.cpp:1: 

src/Wrapper.h: In member function ‘const boost::python::api::object& CJavascriptArray::ArrayIterator::dereference() const’: 

src/Wrapper.h:115:66: warning: returning reference to temporary [-Wreturn-local-addr] 

    reference dereference() const { return m_array->GetItem(m_idx); } 

                   ^

x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DBOOST_PYTHON_STATIC_LIB -Ilib/python/inc -Ilib/boost/inc -Ilib/v8/inc -I/usr/include/python2.7 -c src/Engine.cpp -o build/temp.linux-x86_64-2.7/src/Engine.o 

cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default] 

In file included from src/Context.h:7:0, 

       from src/Engine.h:7, 

       from src/Engine.cpp:1: 

src/Wrapper.h: In member function ‘const boost::python::api::object& CJavascriptArray::ArrayIterator::dereference() const’: 

src/Wrapper.h:115:66: warning: returning reference to temporary [-Wreturn-local-addr] 

    reference dereference() const { return m_array->GetItem(m_idx); } 

                   ^

x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DBOOST_PYTHON_STATIC_LIB -Ilib/python/inc -Ilib/boost/inc -Ilib/v8/inc -I/usr/include/python2.7 -c src/Wrapper.cpp -o build/temp.linux-x86_64-2.7/src/Wrapper.o 

cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default] 

In file included from src/Wrapper.cpp:1:0: 

src/Wrapper.h: In member function ‘const boost::python::api::object& CJavascriptArray::ArrayIterator::dereference() const’: 

src/Wrapper.h:115:66: warning: returning reference to temporary [-Wreturn-local-addr] 

    reference dereference() const { return m_array->GetItem(m_idx); } 

                   ^

src/Wrapper.cpp: In static member function ‘static v8::Handle<v8::Boolean> CPythonObject::IndexedDeleter(uint32_t, const v8::AccessorInfo&)’: 

src/Wrapper.cpp:256:25: warning: variable ‘value’ set but not used [-Wunused-but-set-variable] 

    v8::Handle<v8::Value> value = IndexedGetter(index, info); 

         ^

src/Wrapper.cpp: In static member function ‘static void CPythonObject::SetupObjectTemplate(v8::Handle<v8::ObjectTemplate>)’: 

src/Wrapper.cpp:311:84: error: invalid conversion from ‘v8::Handle<v8::Boolean> (*)(v8::Local<v8::String>, const v8::AccessorInfo&)’ to ‘v8::NamedPropertyQuery {aka v8::Handle<v8::Integer> (*)(v8::Local<v8::String>, const v8::AccessorInfo&)}’ [-fpermissive] 

    clazz->SetNamedPropertyHandler(NamedGetter, NamedSetter, NamedQuery, NamedDeleter); 

                        ^

In file included from src/Exception.h:6:0, 

       from src/Wrapper.h:8, 

       from src/Wrapper.cpp:1: 

/usr/include/v8.h:2414:8: error: initializing argument 3 of ‘void v8::ObjectTemplate::SetNamedPropertyHandler(v8::NamedPropertyGetter, v8::NamedPropertySetter, v8::NamedPropertyQuery, v8::NamedPropertyDeleter, v8::NamedPropertyEnumerator, v8::Handle<v8::Value>)’ [-fpermissive] 

    void SetNamedPropertyHandler(NamedPropertyGetter getter, 

     ^

src/Wrapper.cpp:312:94: error: invalid conversion from ‘v8::Handle<v8::Boolean> (*)(uint32_t, const v8::AccessorInfo&) {aka v8::Handle<v8::Boolean> (*)(unsigned int, const v8::AccessorInfo&)}’ to ‘v8::IndexedPropertyQuery {aka v8::Handle<v8::Integer> (*)(unsigned int, const v8::AccessorInfo&)}’ [-fpermissive] 

    clazz->SetIndexedPropertyHandler(IndexedGetter, IndexedSetter, IndexedQuery, IndexedDeleter); 

                          ^

In file included from src/Exception.h:6:0, 

       from src/Wrapper.h:8, 

       from src/Wrapper.cpp:1: 

/usr/include/v8.h:2437:8: error: initializing argument 3 of ‘void v8::ObjectTemplate::SetIndexedPropertyHandler(v8::IndexedPropertyGetter, v8::IndexedPropertySetter, v8::IndexedPropertyQuery, v8::IndexedPropertyDeleter, v8::IndexedPropertyEnumerator, v8::Handle<v8::Value>)’ [-fpermissive] 

    void SetIndexedPropertyHandler(IndexedPropertyGetter getter, 

     ^

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 

---------------------------------------- 
Cleaning up... 
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/pyv8/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-JQHgTo-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/pyv8 
Traceback (most recent call last): 
    File "/usr/bin/pip", line 9, in <module> 
    load_entry_point('pip==1.5.4', 'console_scripts', 'pip')() 
    File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 235, in main 
    return command.main(cmd_args) 
    File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 161, in main 
    text = '\n'.join(complete_log) 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 42: ordinal not in range(128) 

Что происходит не так? Как я могу это исправить?

+0

похоже, что вы не одиноки ... см. [This] (http://code.google.com/p/pyv8/issues/detail?id=228) форум. Я не могу проверить это, но [this] (http://code.google.com/p/pyv8/issues/detail?id=132) сообщение предлагает вам исправить его, указав другую версию. – Ward

ответ

2

Чтобы построить из источника с помощью пип, вы можете запустить:

pip install svn+http://pyv8.googlecode.com/svn/trunk/ 

Или с помощью flier (автор, кажется) 's migrated github repository:

pip install git+https://github.com/flier/pyv8.git 
2

Чтобы решить эту проблему, мне пришлось удалить некоторые из пакетов Ubuntu я пробовал:

$ sudo apt-get purge libv8-3.14.5 libv8-dev 

Затем выписка PyV8 от подрывных

$ svn checkout http://pyv8.googlecode.com/svn/trunk/ pyv8-read-only 

setup.py скрипт позаботилась о извлекая и построение совместимой версии V8:

$ cd pyv8-read-only 
$ python setup.py build 
$ sudo python setup.py install 
+0

Код googlecode svn не работая для меня. Я разработал реализацию pyv8 летчиком (поддерживающим пакет pyv8 pip), и я работаю над его изменением, чтобы использовать репозиторий git google (https://chromium.googlesource.com/v8/v8.git) – WilBur

1

При попытке установить PyV8 я столкнулся с несколькими различными ошибками. Я не пытался глубже понять, почему именно произошли разные ошибки. Я на Ubuntu 16.04 64-битной версии.

Я последовал за следующие инструкции

sudo apt-get install libboost-all-dev 
sudo apt-get install build-essential autoconf libtool pkg-config python-opengl python-imaging python-pyrex python-pyside.qtopengl idle-python2.7 qt4-dev-tools qt4-designer libqtgui4 libqtcore4 libqt4-xml libqt4-test libqt4-script libqt4-network libqt4-dbus python-qt4 python-qt4-gl libgle3 python-dev 
sudo easy_install greenlet 
sudo easy_install gevent 
git clone https://github.com/buffer/pyv8.git 
cd pyv8 
sudo python setup.py build 
sudo python setup.py install 

и был в состоянии установить и использовать PyV8

Этой инструкция была найдена здесь - https://github.com/buffer/thug/issues/170#issuecomment-225762492

Надеется, что это помогает.

0

Чтобы установить PyV8 на основе Debian дистрибутиве:

кд/USR/доли

Судо мерзавец клон https://github.com/emmetio/pyv8-binaries.git

кд pyv8-бинарники/

Судо распакуйте pyv8-linux64.zip

sudo cp -a PyV8.py _PyV8.so/usr/bin

Смежные вопросы