version | 2019, July |
macOS | 10.14, 10.15 |
Python | 3.7.4 |
超ハマったので共有がてら書いておきます。
macOS 10.14 MojaveでPython をソースから入れて pip install
するとopensslにリンクできてないというエラーがでてしまいました。
よくよく調べるとimport ssl
したときにこんなエラーがでるようになってしまった。
>>> import ssl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/python-3.7.4/ssl.py", line 60, in <module>
import _ssl # if we can't import it, let the error propagate
ImportError: No module named _ssl
ビルドする手順
ここではhomebrewでopenssl入れてますが、他のinstall方式でも同じだと思います。
configure するときに --with-openssl
でディレクトリを指定することが必要でした。
$ brew install openssl
# /usr/local/opt/openssl にインストールされる
$ curl https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
$ tar xzvpf Python-3.7.4.tgz
$ cd Python-3.7.4
$ ./configure --with-openssl=/usr/local/opt/openssl
$ make
$ make install
こんなんを実行してsslのバージョンが表示されれば成功
$ python -c "import ssl; print(ssl.OPENSSL_VERSION)"
OpenSSL 1.0.2s
参考
-
https://stackoverflow.com/questions/46457404/how-can-i-compile-python-3-6-2-on-macos-with-openssl-from-homebrew
- Guidoがstackoverflow.comに書いてくれてました。
- http://pelican.aodag.jp/20140503-python-multiple-version.html
先人たちに感謝