jupyter-forward icon indicating copy to clipboard operation
jupyter-forward copied to clipboard

wrong version of openssl when installing with mamba

Open kmpaul opened this issue 2 years ago • 0 comments

UPDATED:

When you use mamba to create a fresh install of jupyter-forward, it installs the incorrect version of openssl (version 3.0.2) which is incompatible with cryptography, a dependency of paramiko. Installation proceeds, but when you try to run jupyter-forward, you get the following error:

Traceback (most recent call last):
  File "/Users/kpaul/Software/miniconda3/envs/t/bin/jupyter-forward", line 6, in <module>
    from jupyter_forward.cli import main
  File "/Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/jupyter_forward/__init__.py", line 6, in <module>
    from .core import RemoteRunner
  File "/Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/jupyter_forward/core.py", line 12, in <module>
    import paramiko
  File "/Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/paramiko/__init__.py", line 22, in <module>
    from paramiko.transport import SecurityOptions, Transport
  File "/Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/paramiko/transport.py", line 132, in <module>
    class Transport(threading.Thread, ClosingContextManager):
  File "/Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/paramiko/transport.py", line 207, in Transport
    if KexCurve25519.is_available():
  File "/Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/paramiko/kex_curve25519.py", line 30, in is_available
    X25519PrivateKey.generate()
  File "/Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py", line 39, in generate
    from cryptography.hazmat.backends.openssl.backend import backend
  File "/Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/cryptography/hazmat/backends/openssl/__init__.py", line 6, in <module>
    from cryptography.hazmat.backends.openssl.backend import backend
  File "/Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 64, in <module>
    from cryptography.hazmat.bindings.openssl import binding
  File "/Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: dlopen(/Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/cryptography/hazmat/bindings/_openssl.abi3.so, 2): Library not loaded: @rpath/libssl.1.1.dylib
  Referenced from: /Users/kpaul/Software/miniconda3/envs/t/lib/python3.10/site-packages/cryptography/hazmat/bindings/_openssl.abi3.so
  Reason: image not found

Further investigation shows that when you install jupyter-forward with conda, it correctly installs openssl version 1.1.1n, which is compatible with cryptography. Similarly, if you install jupyter-forward with pip, everything works fine (no openssl is installed with pip, as that is a conda package).

This definitely appears to be a bug in mamba, and users of jupyter-forward should be cautious!

kmpaul avatar Mar 23 '22 18:03 kmpaul