1. python


http://docs.python.jp/index.html /pip

Letsencrypt を動かそうとして引っかかっているところ。

-- ToshinoriMaeno 2015-11-18 09:51:57

/cryptographyかもしれない。 あるいはpythonの(実行時)ライブラリのpathか。

/usr/local/lib は最初に調べるらしいので、ld.so ではなさそう。

-- ToshinoriMaeno 2015-11-18 23:17:42

/pyNaCl

1.1. virtualenv

anaconda 抜きでも進むようになったので、 virtualenvを入れてみる。

$ sudo easy_install virtualenv

Searching for virtualenv
Reading https://pypi.python.org/simple/virtualenv/
Best match: virtualenv 13.1.2
Downloading https://pypi.python.org/packages/source/v/virtualenv/virtualenv-13.1.2.tar.gz#md5=b989598f068d64b32dead530eb25589a
Processing virtualenv-13.1.2.tar.gz
Writing /tmp/easy_install-7A7Omn/virtualenv-13.1.2/setup.cfg
Running virtualenv-13.1.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-7A7Omn/virtualenv-13.1.2/egg-dist-tmp-t7k0dN
warning: no previously-included files matching '*' found under directory 'docs/_templates'
warning: no previously-included files matching '*' found under directory 'docs/_build'
creating /usr/local/lib/python2.7/site-packages/virtualenv-13.1.2-py2.7.egg
Extracting virtualenv-13.1.2-py2.7.egg to /usr/local/lib/python2.7/site-packages
Adding virtualenv 13.1.2 to easy-install.pth file
Installing virtualenv script to /usr/local/bin
Installing virtualenv-2.7 script to /usr/local/bin

Installed /usr/local/lib/python2.7/site-packages/virtualenv-13.1.2-py2.7.egg
Processing dependencies for virtualenv
Finished processing dependencies for virtualenv

1.2. OpenSSL

FreeBSD での問題 https://lists.freebsd.org/pipermail/freebsd-python/2015-January/007843.html

1.3. anaconda

/anaconda


ここを通過しても、virtualenvがどうなるかは不明だ。

$ openssl version
LibreSSL 2.2.4

1.4. python3 + OpenSSL

pyOpenSSL-0.15.1 test

======================================================================
ERROR: OpenSSL (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: OpenSSL
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/unittest/loader.py", line 153, in loadTestsFromName
    module = __import__(module_name)
  File "/home/tmaeno/pyOpenSSL-0.15.1/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/home/tmaeno/pyOpenSSL-0.15.1/OpenSSL/rand.py", line 11, in <module>
    from OpenSSL._util import (
  File "/home/tmaeno/pyOpenSSL-0.15.1/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
  File "/home/tmaeno/pyOpenSSL-0.15.1/.eggs/cryptography-1.1-py3.5-linux-i686.egg/cryptography/hazmat/bindings/openssl/binding.py", line 13, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: /home/tmaeno/pyOpenSSL-0.15.1/.eggs/cryptography-1.1-py3.5-linux-i686.egg/cryptography/hazmat/bindings/_openssl.cpython-35m-i386-linux-gnu.so: undefined symbol: EC_curve_nid2nist

1.5. cryptography がおかしいのか

test でもおなじsymbolを参照している。

_______________________ ERROR collecting tests/hazmat/primitives/test_rsa.py _______________________
tests/conftest.py:17: in pytest_generate_tests
    selected_backends = select_backends(names, _available_backends())
src/cryptography/hazmat/backends/__init__.py:27: in _available_backends
    "cryptography.backends"
src/cryptography/hazmat/backends/__init__.py:26: in <listcomp>
    for ep in pkg_resources.iter_entry_points(
/usr/local/lib/python3.5/site-packages/pkg_resources/__init__.py:2361: in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
src/cryptography/hazmat/backends/openssl/__init__.py:7: in <module>
    from cryptography.hazmat.backends.openssl.backend import backend
src/cryptography/hazmat/backends/openssl/backend.py:43: in <module>
    from cryptography.hazmat.bindings.openssl import binding
src/cryptography/hazmat/bindings/openssl/binding.py:13: in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
E   ImportError: /home/tmaeno/cryptography/cryptography-master/src/cryptography/hazmat/bindings/_openssl.cpython-35m-i386-linux-gnu.so: undefined symbol: EC_curve_nid2nist

OpenSSL(LibreSSLではない)を使うようにしてみたら、

-- ToshinoriMaeno 2015-11-18 11:05:17

LibreSSLに戻して、undefined symbol: EC_curve_nid2nist がでるところまで戻した。

-- ToshinoriMaeno 2015-11-18 11:09:59

python3対応かどうかの心配もする必要がありそう。 -- ToshinoriMaeno 2015-11-18 11:22:36