検索ガイド -Search Guide-

単語と単語を空白で区切ることで AND 検索になります。
例: python デコレータ ('python' と 'デコレータ' 両方を含む記事を検索します)
単語の前に '-' を付けることで NOT 検索になります。
例: python -デコレータ ('python' は含むが 'デコレータ' は含まない記事を検索します)
" (ダブルクオート) で語句を囲むことで 完全一致検索になります。
例: "python data" 実装 ('python data' と '実装' 両方を含む記事を検索します。'python data 実装' の検索とは異なります。)
  • ただいまサイドメニューのテスト中/ただいまサイドメニューのテスト中
  • ただいまサイドメニューのテスト中/ただいまサイドメニューのテスト中
  • ただいまサイドメニューのテスト中/ただいまサイドメニューのテスト中
  • ただいまサイドメニューのテスト中/ただいまサイドメニューのテスト中
  • ただいまサイドメニューのテスト中/ただいまサイドメニューのテスト中
  • ただいまサイドメニューのテスト中/ただいまサイドメニューのテスト中
  • ただいまサイドメニューのテスト中/ただいまサイドメニューのテスト中
  • ただいまサイドメニューのテスト中/ただいまサイドメニューのテスト中
  • ただいまサイドメニューのテスト中/ただいまサイドメニューのテスト中
  • ただいまサイドメニューのテスト中/ただいまサイドメニューのテスト中
  • ただいまサイドメニューのテスト中/ただいまサイドメニューのテスト中
>>
practical_python_design_patterns

Practical Python Design Patterns - Python で学ぶデザインパターン: The Chain of Responsibility Pattern - Part. 2 「WSGI サーバーのセットアップ part 1: Windows では Cygwin のインストールが必要な場合があります」の巻 投稿一覧へ戻る

Published 2022年6月13日19:52 by mootaro23

SUPPORT UKRAINE

- Your indifference to the act of cruelty can thrive rogue nations like Russia -

Setting Up a WSGI Server part 1 (with Cygwin on Windows)
(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 ボックスを利用しながら必要なパッケージを見つけ出してインストールするように設定します (同じ行にある下矢印ボタンを押すとインストール可能なバージョンを選択できます。こだわりがなければ最新バージョンで多分問題ありません):
python3 (python3-devel とバージョンを合わせる必要があるため、python 本体もインストールした方が安全です)
python3-devel (インストールする python と同じバージョンのものを選択します)
gcc-core, gcc-g++
libcrypt-devel
wget
dos2unix
libintl-devel
選択が終了したら「次へ」をクリック
Review and confirm changes 画面でインストールするパッケージを確認、「次へ」をクリック、インストールが始まります → 完了
デスクトップに Cygwin64 Terminal というショートカットアイコンができていると思います。ダブルクリックで Cygwin のターミナルウィンドウが立ち上がります。初期の起動ディレクトリはユーザーのホームディレクトリ/home/user です (pwd コマンドで確認できます)。仮想環境を構築します:
python -m venv xxxxx (xxxxx は仮想環境名)
(ハマり所: 1) この時に次のようなエラーが出る場合があります:
Error: Command '['/home/user/my_venv/bin/python', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
この場合は次のように対処します:
$ python -m venv --without-pip XXXXX (pip なしのまま仮想環境を構築します)
$ source XXXXX/bin/activate (仮想環境を立ち上げます。path が /bin/ であることに注意してください)
$ curl https://bootstrap.pypa.io/get-pip.py | python (仮想環境に入っている状態で pip をインストールします)
$ deactivate (一度仮想環境から抜けます)
$ source my_venv/bin/activate (再度仮想環境に入ります)
$ which pip (pip の存在を確認します。path が表示されれば OK です)
$ pip install --upgrade pip (pip 自身でインストールが可能になっているはずです)
今後仮想環境に入るのは $ source XXXXX/bin/activate になります。/scripts/activate ではありませんので注意してください。以下の手順を試す必要がある場合も、読み替えてください。
作成した仮想環境のディレクトリに移動し、仮想環境を立ち上げます
source scripts/activate
(ハマり所: 2) ここで次のようなエラーが出るかもしれません:
-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 エディタの動作がおかしい、というものです。
(ハマり所: 3) また Cygwin ターミナルで vi エディタを利用する際に動作がおかしい場合 (矢印キーを押すと 'A', 'B', 'C', 'D' といった文字が入力されてしまう等)、vi 用の設定ファイルに問題がある場合があります。その時は、まず以下のコマンドを実行して vi の設定ファイルの場所を確認します:
vi --version
この中で、'user vimrc file' もしくは '2nd user vimrc file' と記載されている場所に .virc ファイルが存在するかどうかを確認してください。もしなければ該当する「ディレクトリを作成」 or 「ディレクトリに移動」して vi .virc を実行します (vi エディタで新規ファイルが作成され編集画面になります)。以下の行を追加して保存します:
set nocompatible
再度 vi を立ち上げれば「多分」問題は解決されているはずです。
無事 uWSGI のインストールに成功した Windows ユーザーの皆さん、おめでとうございます。お疲れでしょうがここからが勉強本番ですよ!
この記事に興味のある方は次の記事にも関心を持っているようです...
- People who read this article may also be interested in following articles ... -
Practical Python Design Patterns - Python で学ぶデザインパターン: The Chain of Responsibility Pattern - Part. 3 「WSGI サーバーのセットアップ part 2: Postman を利用した API エンドポイントのテスト」の巻
Practical Python Design Patterns - Python で学ぶデザインパターン: The Chain of Responsibility Pattern - Part. 6 「ダメ押し確認」の巻 🔒
Practical Python Design Patterns - Python で学ぶデザインパターン: The Chain of Responsibility Pattern - Part. 5 「より pythonic な Chain of Responsibility パターンの実装とプロジェクトへの適用」の巻 🔒
Practical Python Design Patterns - Python で学ぶデザインパターン: The Chain of Responsibility Pattern - Part. 4 「The Chain of Responsibility パターン」の巻
Practical Python Design Patterns - Python で学ぶデザインパターン: The Chain of Responsibility Pattern - Part. 1 「第10章: Chain of Responsibility パターン [CoR パターン]」の巻
Practical Python Design Patterns - Python で学ぶデザインパターン: The Visitor Pattern part. 3「ダメ押し確認 - ビジターパターン編」の巻
Practical Python Design Patterns - Python で学ぶデザインパターン: The Visitor Pattern part. 2「ビジターパターンの実装」の巻 🔒