Posts Tagged Python
macOS High Sierra(10.13)でのERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?への対処
macOS High Sierra(10.13)でpyenvを使い、Python 3.5.3や2.7.14をインストールしようとすると成功したように見えて次のエラーがでて正しくインストールされない現象に遭遇。macOS High Sierra: ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? #993などを参考に正しくインストールする方法を探った際の記録。
インストール時のエラーメッセージ
$ pyenv install 3.6.3
Downloading Python-3.6.3.tar.xz...
-> https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
Installing Python-3.6.3...
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems
BUILD FAILED (OS X 10.13 using python-build 20160602)
Inspect or clean up the working tree at /var/folders/yf/79cdmmgx74s6z0_9yf_tz1fw0000gq/T/python-build.20171022085825.57793
Results logged to /var/folders/yf/79cdmmgx74s6z0_9yf_tz1fw0000gq/T/python-build.20171022085825.57793.log
Last 10 log lines:
upgrade) ensurepip="--upgrade" ;; \
install|*) ensurepip="" ;; \
esac; \
./python.exe -E -m ensurepip \
$ensurepip --root=/ ; \
fi
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-9.0.1 setuptools-28.8.0
最終行でSuccessfullyと出るのでうまくいっているように見えるが赤字で示す行の通りOpenSSlのライブラリが見つからないと出ている。
正しくインストールする操作手順
色々試した結果、次の操作でエラーを回避した。
- homebrewでHigh Sierra以前でインストールしたopensslパッケージを強制的にアンインストール
- homebrewで再度opensslパッケージをインストール
- openssl再インストール時に表示されたコマンドを実行
- bashの環境変数PATHを修正
- 再度pyenvコマンドでpythonのインストール
実行したコマンドなど
$ brew uninstall --ignore-dependencies --force openssl $ brew install openssl $ /usr/local/opt/openssl/bin/c_rehash
~/.bash_profile内の環境変数PATHの設定を変更
export PATH="/usr/local/opt/openssl/bin:$PATH"
~/.bash_profileの変更反映とインストール
$ source ~/.bash_profile $ peen install 3.5.3 # 2.7.14では次のコマンドを実行 $ LDFLAGS="-L/usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include" pyenv install 2.7.14
これでバージョン2と3の最新バージョンが利用できる。
実はHomebrewではバージョン2.7.14と3.6.3がインストールされている
MacPorts 1.8.0でPythonのインストール
先日失敗したMacPorts 1.8.0でのPython2.6のインストール、いろいろ試行し、インストールできました。
- 念のためインストールしていたMacPorts 1.8.0をhttp://guide.macports.org/#installing.macports.uninstallingを参考にアンインストール。
- Snow Leopard対応のMacPorts 1.8.0のパッケージをダウンロードし、インストール。
- zlibをインストール
- Python 2.6をインストール、ここでは失敗する。
- 失敗した後、ファイル
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/Python-2.6.2/Lib/plat-mac/EasyDialogs.py を使い慣れたテキストエディタで開き、import Navの行を検索し、コメントアウトする。編集にはroot権限が必要。 - 再度、Pyhthonをインストールすれば成功するはず。アプリケーションフォルダ内のフォルダMacPortsにフォルダPython 2.6が作られ、3つのファイルが作成される。
MacPorts 1.8.0でインストールしたPython2.6
$ sudo port install zlib +universal
$ sudo port install python26 +universal
以上の操作が終わればGTK2もportコマンドでインストールできる。
MacPortsでインストールされるプログラムはMac OS X 10.6ではハードウェアが64ビット対応であれば64ビットのみでビルドされるが、+universalオプションをインストール時に付加すると64ビットと32ビットの両方に対応するようにビルドされる。コマンドやビルドされたファイルが32ビット対応か、64ビット対応かを調べるにはターミナルでfileコマンドを使えば分かる。
$ file /bin/ls $ file /opt/local/bin/ptex
参考ページ
Pythonを始めようかな
名前は聞いたことがあったが、勉強していなかったPythonを始めようと思う。レンタルサーバでも使えるみたいだし。
{}じゃなくてインデントでブロックを決めるのか。なるほど。
最近のコメント