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

macOS High Sierra(10.13)で大きいファイルを探す

macOS High Sierra(10.13)で大きなファイルを検索し、削除等する機能が搭載されている。次の手順で利用できる。

  1. アップルメニューを開く
  2. 表示されたウィンドウでストレージを選択し、管理ボタンを押す
  3. ファイルの種別ごとの集計が実行され、結果が表示される
  4. 詳細を見たい項目をサイドバーから選択する
  5. 選択した項目(書類など)でファイルがサイズの大きい順で表示される
  6. ファイルを選択すると削除や検索のボタンが表示される
  7. 操作したいファイルを選択し、削除や検索を実行する

 

アップルメニューを開く

 

ストレージを選び、管理ボタンを押す

 

項目ごとの集計結果と操作パネル

 

項目内の大きい順でのファイル表示

No Comments

ios-11のコントロールセンターからカメラを通常モード以外で起動する

iOS 11で新しくなったコントロールセンターでカメラの起動はアイコンをタップすれば良いが、アイコンを長押し(6 Plus使ってるので)するとカメラのモードを次から選択できるメニューが表示される。

  1. セルフィーを撮る
  2. ビデオ撮影
  3. スローモーション撮影
  4. 写真を撮る

使いたいモードの項目をタップすればそのモードでカメラが起動する。

カメラ以外のミュージック、ネットワーク関連、明るさ、計算機、フラッシュライト、画面ミラーリングにも同様の機能がある。

, ,

No Comments

macOS High Sierraで外付けSSDをAPFSに変換する

macOS 10.13(High Sierra)からSSDのファイルシステムがAPFS(Apple File System)に変更された。10.12(Sierra)からアップデートすると自動的にファイルシステムがAPFSに変換されるが外付けSSDはどう変換するのか調べるとDisk Utilityを使えば良いことがわかった。

フォーマットされるわけではないのでファイルがあっても問題ない。

手順

  1. Disk Utilityを起動
  2. 変換したい外付けSSDドライブのパーディションを右クリック
  3. 表示されたメニューの一番下、APFSに変換を選択
  4. High Sierra以外では使えないがいいかの確認をOKする
  5. しばらく待つと変換完了

変換の詳細を表示するとapfs_hfs_convertコマンドを実行したことがわかる。

以下がDisk Utilityメッセージの内容。

HFSボリュームを、1つのAPFSボリュームを書き出すAPFSコンテナに変換中
ターゲットは、GPTパーティション“disk4s2”でバックアップされているJournaled HFS+ボリューム“JD”です
APFSコンテナにインストールするAPFS EFIドライバ“/usr/standalone/i386/apfs.efi”が見つかりました
“disk4s2”のマウントを解除中
HFSからAPFSへの変換を開始中
apfs_hfs_convert -x –verbose=0x400 –efi /usr/standalone/i386/apfs.efi /dev/disk4s2を実行中
変換前の統計情報の報告
変換後の統計情報の報告
HFSからAPFSへの変換が完了しました
コミットモードでの変換が成功すると、タイプがAPFSに切り替わります
disk4s2のタイプをAPFSに設定中
物理ディスクのパーティションタイプをsharedモードで変更中
パーティション変更の試行回数は1回でした
disk4s2を開いてから閉じる操作により古いコンテンツドライバを終了しています
物理ストアdisk4s2に新しいAPFSコンテナが必要です
暗号化されていない新しいAPFSボリューム“disk5s1”の存在を確認しました
APFSボリューム“disk5s1”をマウント中
APFSボリュームのマウント試行の結果は0でした
変換操作を終了中(エラーコード0)
操作が完了しました。

 

No Comments

Apple WatchによるMacのロック解除するには有線LANを外す

長年使ってきたMacBook Air Mid 2011をMacBook Pro (13-inch, Late 2016, Two Thunderbolt 3 ports)に変更した。これでContinuity Activation Toolのお世話にならなくてもAirDrop、HandoffできるようになったがApple Watchによるロックの解除が思うように動作してくれなかった。設定は正しく行えている。

しばらく使っていくうち動作しない状態が分かった。それは

Macを有線LANがない状態にする

だった。MacBook Pro Late 2016なので有線LANはアダプタが必要なので無線LANだけで使えば良いことになる。

No Comments

LaTeXへの変換にも対応するMarkdown中の画像サイズ指定方法

最近、Markdownを使っての文書作成が多くなっているがそれをpandocを使ってLaTeXなどの他の形式に変換してPDFとして配布するようになった。

Markdownの元文書中にPNGなどの画像は次の書式で挿入するがこのままではLaTeXなどに変換したとき、ぺーじをはみ出してしまう。

![代替テキスト](画像ファイル名)

Markdown中でCSSを使えばHTMLでは表示サイズを指定できるがLaTeXには反映されない。色々と検索した結果、Syntax for specifying image size #261でその解決方法を見つけた。HTML、LaTeXに対応した書き方は下記の通り。ファイル名指定に続けて幅と高さを指定する。

<div style="width:幅の値">
![代替テキスト](画像ファイル名){width=幅の値 height=高さの値}
</div>

たとえば、画像test.pngを幅を14cmで表示したときは次のように記す。

<div style="width: 14cm;">
![画像です](test.png){width=14cm}
</div>

これをpanicでLaTeXに変換すると、下記のようにfigure環境になり、代替テキストがキャプションに指定されます。これで意図したサイズで画像を表示できるようになる。

\begin{figure}[htbp]
\centering
\includegraphics[width=14.00000cm]{test.png}
\caption{画像です}
\end{figure}

なお、pandocで変換されたLaTeXファイルだけではコンパイルできないので別ファイルに\input{}や\include{}を使って取り込み、コンパイルします。

,

No Comments

MacBook Air mid 2011とContinuity Activation Toolでの不具合回避法

El Capitan(OS X 10.11)をインストールしたMacBook Air mid 2011でHandoffやAirDropを有効化するツールContinuity Activation Toolをインストールしていると再起動毎にWifiのハードウェアが認識されなくなり、HandoffやAirDropが使えなくなってしまう。再有効化するにはアンインストールと再インストールしなければならない。

開発元のissuesを検索したら対処法が載っていた(Get “Wi-Fi: No Hardware Installed” after installing CAT 2.1.3 on OS X 10.11.1 (MacBook Air Mid 2011) #253)

リカバリーモードでSIPを有効化するときのオプションに–without kextを加えて実行すればいい。

# csrutil enable --without kext

No Comments

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