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のライブラリが見つからないと出ている。

正しくインストールする操作手順

色々試した結果、次の操作でエラーを回避した。

  1. homebrewでHigh Sierra以前でインストールしたopensslパッケージを強制的にアンインストール
  2. homebrewで再度opensslパッケージをインストール
  3. openssl再インストール時に表示されたコマンドを実行
  4. bashの環境変数PATHを修正
  5. 再度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がインストールされている

, ,

No Comments

MacPorts 1.8.0でPythonのインストール

先日失敗したMacPorts 1.8.0でのPython2.6のインストール、いろいろ試行し、インストールできました。

  1. 念のためインストールしていたMacPorts 1.8.0をhttp://guide.macports.org/#installing.macports.uninstallingを参考にアンインストール。
  2. Snow Leopard対応のMacPorts 1.8.0のパッケージをダウンロードし、インストール。
  3. zlibをインストール
  4. $ sudo port install zlib +universal
  5. Python 2.6をインストール、ここでは失敗する。
  6. $ sudo port install python26 +universal
  7. 失敗した後、ファイル
    /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権限が必要。
  8. 再度、Pyhthonをインストールすれば成功するはず。アプリケーションフォルダ内のフォルダMacPortsにフォルダPython 2.6が作られ、3つのファイルが作成される。

    MacPorts 1.8.0でインストールしたPython2.6

    MacPorts 1.8.0でインストールしたPython2.6

以上の操作が終わればGTK2もportコマンドでインストールできる。

MacPortsでインストールされるプログラムはMac OS X 10.6ではハードウェアが64ビット対応であれば64ビットのみでビルドされるが、+universalオプションをインストール時に付加すると64ビットと32ビットの両方に対応するようにビルドされる。コマンドやビルドされたファイルが32ビット対応か、64ビット対応かを調べるにはターミナルでfileコマンドを使えば分かる。

$ file /bin/ls
$ file /opt/local/bin/ptex

参考ページ

http://trac.macports.org/ticket/20870

,

No Comments

Pythonを始めようかな

名前は聞いたことがあったが、勉強していなかったPythonを始めようと思う。レンタルサーバでも使えるみたいだし。

{}じゃなくてインデントでブロックを決めるのか。なるほど。

No Comments

%d人のブロガーが「いいね」をつけました。