• ホーム
  • Python
  • Windows10 バージョン1703 Creators Update にPythonとSphinxをインストール

Windows10 バージョン1703 Creators Update にPythonとSphinxをインストール

久しぶりにSphinxを使おうと思ってPythonとSphinxをWindows10 Creators Updateにインストールしたら、ちょっとはまりましたので記録しておきます。

目次

  1. 何をしようとした?
  2. どうした?

何をしようとした?

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でも正しく表示されるようになりました。

image0

謎だ。

公開日

広告