On clean Ubuntu 16.04 environment, I want to install and use Crossbar.io.
I have already installed pypy from ppa, virtualenv and activate a new pypy virtualenv.
I had some error while installing crossbar via command pip install crossbar
but solved using this build command:
pip install --no-cache-dir --global-option=build_ext --global-option="-I/usr/include/python2.7" crossbar
Now when launching crossbar with crossbar version
I got the following error:
Traceback (most recent call last):
File "/home/visiboost/gmm_pypy_env2/bin/crossbar", line 11, in <module>
load_entry_point('crossbar==17.6.1.post3', 'console_scripts', 'crossbar')()
File "/home/visiboost/gmm_pypy_env2/site-packages/pkg_resources/__init__.py", line 542, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/home/visiboost/gmm_pypy_env2/site-packages/pkg_resources/__init__.py", line 2569, in load_entry_point
return ep.load()
File "/home/visiboost/gmm_pypy_env2/site-packages/pkg_resources/__init__.py", line 2229, in load
return self.resolve()
File "/home/visiboost/gmm_pypy_env2/site-packages/pkg_resources/__init__.py", line 2235, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/home/visiboost/gmm_pypy_env2/site-packages/crossbar/controller/cli.py", line 62, in <module>
from crossbar.controller.node import _read_release_pubkey, _read_node_pubkey
File "/home/visiboost/gmm_pypy_env2/site-packages/crossbar/controller/node.py", line 44, in <module>
from nacl.signing import SigningKey
File "/home/visiboost/gmm_pypy_env2/site-packages/nacl/signing.py", line 19, in <module>
import nacl.bindings
File "/home/visiboost/gmm_pypy_env2/site-packages/nacl/bindings/__init__.py", line 17, in <module>
from nacl.bindings.crypto_box import (
File "/home/visiboost/gmm_pypy_env2/site-packages/nacl/bindings/crypto_box.py", line 18, in <module>
from nacl._sodium import ffi, lib
ImportError: unable to load extension module '/home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so': /home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so: undefined symbol: _Py_NoneStruct
I try adding path by settings environment variable before launching but no success:
export LD_LIBRARY_PATH=/usr/lib/python2.7/config-x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu/
Results of ldd on failing library:
ldd -r /home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so
linux-vdso.so.1 => (0x00007fff31ddd000)
libsodium.so.18 => /usr/lib/x86_64-linux-gnu/libsodium.so.18 (0x00007fe336153000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe335f0c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe335b41000)
/lib64/ld-linux-x86-64.so.2 (0x0000564659a68000)
undefined symbol: _Py_NoneStruct (/home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so)
undefined symbol: PyObject_CallMethod (/home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so)
undefined symbol: PyEval_RestoreThread (/home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so)
undefined symbol: PyLong_FromVoidPtr (/home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so)
undefined symbol: PyArg_UnpackTuple (/home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so)
undefined symbol: PyErr_Occurred (/home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so)
undefined symbol: PyImport_ImportModule (/home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so)
undefined symbol: PyLong_FromUnsignedLong (/home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so)
undefined symbol: PyInt_FromLong (/home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so)
undefined symbol: PyEval_SaveThread (/home/visiboost/gmm_pypy_env2/site-packages/nacl/_sodium.pypy-41-x86_64-linux-gnu.so)
Have you any ideas ?
You should not be using cpython headers with pypy so the --global-option="-I/usr/include/python2.7"
is wrong. As documented here and here you probably need to install the pypy-dev
package so that you can build packages with pypy, much as you need python-dev
to
build packages with python.
Edit: looking at the crossbar documentation, they do not recommend using apt get
at all, and also recommend compiling CPython from source, which is why there is no mention of the python-dev
package.