「WSGI サーバーのセットアップ part 1: Windows では Cygwin のインストールが必要な場合があります」の巻
あなたの学習環境には既に pip がインストールされているでしょうから、uWSGI をインストールしましょう:
pip install uwsgi
インストールが済んだらターミナルを立ち上げて作業場所となる仮想環境を構築してください。
さて、ここからはエラーに遭遇した Windows ユーザーのための説明になります。何の問題もなく uWSGI がインストールできた方は以降の記事は関係ありませんので次のセクションへ進んでください。
Windows ユーザーの中には以下のようなエラーメッセージが表示された方もいるかもしれません。
AttributeError: module 'os' has no attribute 'uname'.
この場合、Windows 上に Linux ライクなターミナル実行環境を構築するために Cygwin をインストールします。
ただしググってもらえれば分かるように結構ドツボにハマる場合もあるようです。2,3種類のエラーへの対処方法を載せましたので参考にしてください。
https://www.cygwin.com/install.html の "Installing and Updating Cygwin for 64-bit versions of Windows" セクション内の setup-x86_64.exe リンクをクリックすることでインストールプログラムを実行することができます。以下がインストール手順です:
Cygwin Setup ダイアログが開いている状態からです。最初の画面: Cygwin Net Release Setup Program で 「次へ」をクリック
Choose A Download Source 画面で、"Install from Internet" を選択、「次へ」をクリック
Select Root Install Directory 画面でインストールするディレクトリと使用可能ユーザーを選択、「次へ」をクリック
Select Local Package Directory 画面で、インストール時にダウンロードされるファイルが保存されるディレクトリを選択、「次へ」をクリック
Select Your Internet Connection 画面で、インターネットへの接続手段を選択。通常は "Use System Proxy Settings" で問題ないはずです。設定後「次へ」をクリック
Choose A Download Site 画面でダウンロードホストサーバーを選択 (お好きな所を)、「次へ」をクリック、Progress 画面が表示され、しばらくすると Select Packages 画面が表示されます
画面上部にある Search ボックスを利用しながら必要なパッケージを見つけ出してインストールするように設定します (同じ行にある下矢印ボタンを押すとインストール可能なバージョンを選択できます。こだわりがなければ最新バージョンで多分問題ありません):
Review and confirm changes 画面でインストールするパッケージを確認、「次へ」をクリック、インストールが始まります → 完了
デスクトップに Cygwin64 Terminal というショートカットアイコンができていると思います。ダブルクリックで Cygwin のターミナルウィンドウが立ち上がります。初期の起動ディレクトリはユーザーのホームディレクトリ/home/user です (pwd コマンドで確認できます)。仮想環境を構築します:
python -m venv xxxxx (xxxxx は仮想環境名)
Error: Command '['/home/user/my_venv/bin/python', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
作成した仮想環境のディレクトリに移動し、仮想環境を立ち上げます
source scripts/activate
-bash: $'\r': command not found
これは行の改行文字が Windows では '\n\r' が利用されている一方で、UNIX システムでは '/n' が使用されているためです。このエラーを解決するためには、Cygwin のターミナルで以下のコマンドを実行します:
dos2unix XXXX (XXXX はエラー対象となっているファイル名。ここでは scripts/activate です)
再度仮想環境を立ち上げてみてください。多分入れます。入れない、もしくは、他の問題が生じた場合は一生懸命ググって自分で解決してください。
再度 uWSGI のインストールを試みてください:
pip install uwsgi
もしこれでもインストールできないようであれば素直に諦めてこの章は読み飛ばすか、ググりながら意地でもやり通すか、後はお任せします...
$ pip install uwsgi
Collecting uwsgi
Downloading uwsgi-2.0.20.tar.gz (804 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━ 804.9/804.9 kB 7.3 MB/s eta 0:00:00
Preparing metadata (setup.py) ... done
Building wheels for collected packages: uwsgi
Building wheel for uwsgi (setup.py) ... done
Created wheel for uwsgi: filename=uWSGI-2.0.20-... size=470547 sha256=...
Stored in directory: /home/user/.cache/pip/wheels/...
Successfully built uwsgi
Installing collected packages: uwsgi
Successfully installed uwsgi-2.0.20
ついでですから、Cygwin を利用する上でよく問題になっているエラーを取り上げておきます; vi エディタの動作がおかしい、というものです。
vi --version
この中で、'user vimrc file' もしくは '2nd user vimrc file' と記載されている場所に .virc ファイルが存在するかどうかを確認してください。もしなければ該当する「ディレクトリを作成」 or 「ディレクトリに移動」して vi .virc を実行します (vi エディタで新規ファイルが作成され編集画面になります)。以下の行を追加して保存します:
set nocompatible
再度 vi を立ち上げれば「多分」問題は解決されているはずです。
無事 uWSGI のインストールに成功した Windows ユーザーの皆さん、おめでとうございます。お疲れでしょうがここからが勉強本番ですよ!