Windows10 バージョン1703 Creators Update にPythonとSphinxをインストール
久しぶりにSphinxを使おうと思ってPythonとSphinxをWindows10 Creators Updateにインストールしたら、ちょっとはまりましたので記録しておきます。
目次
何をしようとした?
Windows10 Home 64bit version1703 Creators UpdateのPCがありまして、それでちょっとしたドキュメントを作りたくてSphinxをインストールしようと思い立ったわけです。Sphinxを動かすにはPythonも必要で、公式サイトではPython2.7が薦められていますが、どうせならPhtyon3を使おうと思ったわけです。
どうした?
Python3のインストール
Pythonの公式サイトからWindowsの64bit用のインストーラ(Windows x86-64 executable installer)をダウンロードして、インストールしました。ダウンロードしたバージョンは3.6.2です。
インストーラがどんどんインストールを進めてくれるので、とても簡単です。
Sphinxのインストール
Sphinxはpipのパッケージで配布されているので、pipでインストールします。
まず、適当なフォルダをシフトキーを押しながら右クリックしてPowerShellウィンドウを開きます。(Creators Updateの適用前は、コマンドプロンプトだったような。)
PowerShellのコンソール画面が開くので、コンソールで
> pip install sphinx
を実行すると、Sphinxのダウンロードが始まります。ダウンロードが終わると、そのままインストールが始まります。
と、ここでエラーが起きました。 setup.pyの実行中に、UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83と表示されて止まってしまいました。
エラーを起こしたスクリプトをとりあえず開いてみると、どうもstdoutから文字コードを取得してるっぽいコードが書いてあります。いや、Pythonなんて読んだことないので正しいのかどうかわかりませんが。
Sphinx 1.6自体はPython3に対応してるはずだし、もしかしてPowerShellの問題なのかな。
ということで、PowerShell上でcmdコマンドを実行してコマンドプロンプトに切り替えて、pip install sphinxを実行し直してみました。 結果は、Successfully installedです。よかったよかった。
Sphinxを実行してみる
sphinx-quickstartを実行すると、今度は ModuleNotFoundError: No module named 'markupsafe._compat' だって。
どうもmarkupsafeのモジュールが呼び出せない様子。なるほど、わからん。
この記事が参考になりました。markupsafeをコンパイル済みの別のものに差し替えます。
> pip uninstall markupsafe
を実行してmarkupsafeをいったんアンインストールして、上記の投稿のリンク先からPythonのバージョンに合わせたwhlファイルをダウンロードします。そのwhlファイルを指定して、markupsafeをインストールし直します。
> pip install ダウンロードしたwhlファイル
これで無事にsphinx-quickstartが起動できました。
PowerShellのコンソールでsphinx-quickstartが使えない
PowerShellのコンソールでshinx-quickstartを実行すると、スクリプト自体は動くのですが、一部の文字が表示されない場合があります。
具体的には、ドキュメントのタイトルなどを入力するための問い合わせの部分が表示されなかったりします。スクリプトから聞かれていることが何かわからないので、ちょっと困った状態です。
画面をメモ帳にコピペすると文字がペーストされるので、文字はあっても表示されていない状態のようです。背景色と文字色が重なったという話ではないので、コンソールの背景色を変更しても解決はしません。
対策その1
コンソールからコマンドプロンプトを呼び出して、コマンドプロンプト上でsphinx-quickstartを実行します。
これで解決してくれると楽ですね。 私はうまくいきませんでした。
対策その2
PowerShellのフォントをラスタフォントに変更します。
表示はうまくいったのですが、カーソルの位置と実際に入力される文字の位置がずれるという問題が起きました。
対策その3
Cortanaさんに言って、コマンドプロンプトを直接起動します。実際には、スタートボタンをクリックして、cmdと入力するだけです。
これは問題なく動きました。 ディレクトリの移動が面倒ですが。
結局どうなった
いろいろいじっていたら、PowerShellでも正しく表示されるようになりました。
謎だ。
公開日
広告
Pythonカテゴリの投稿
- PythonからWindows RuntimeのAPIを使ってみる
- Pythonから外部のアプリケーションを実行する
- PythonでApacheのログを読む
- PythonでURLを結合する
- PythonでURLを解析する
- Pythonでtar.gzなファイルを解凍(展開)する
- Pythonでwavファイルを書き出す
- Pythonでwavファイルを読み込む
- Pythonでデータを整形して出力する
- Pythonでハミング窓関数を作る(SciPy編)
- Pythonでブール値を数値に変換する
- Pythonでモジュールをインポートする
- Pythonで数値を比較する
- Pythonで文字の内容から真偽値の判定をする
- Pythonで自前の関数を定義する
- Pythonで論理演算する
- Pythonのprint関数で改行せずに出力する
- Pythonのプログラムを終了する
- Pythonの関数には参照を渡す
- Windows10 バージョン1703 Creators Update にPythonとSphinxをインストール
- Windwos10 バージョン1703 Creators Update にPythonとSphinxをインストール (Anaconda編)
- reStructuredTextの表
- ダウンロードしたファイルのチェックサムをPythonで確認してみた
- 反復処理 (while)
- 反復処理(for)
- 条件分岐
- 自作のモジュールをインポートする