質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

uWSGI

uWSGIは、PythonでWebサービスを動かすアプリケーションサーバの一つです。WSGI(Web Server Gateway Interface)アプリケーションコンテナの一種で、WSGIに則ったDjangoやFlaskなどで動かすことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

3回答

2250閲覧

uWSGIを仮想環境内でインストールする理由について

ruuuu

総合スコア176

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

uWSGI

uWSGIは、PythonでWebサービスを動かすアプリケーションサーバの一つです。WSGI(Web Server Gateway Interface)アプリケーションコンテナの一種で、WSGIに則ったDjangoやFlaskなどで動かすことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/10/07 09:25

編集2020/10/07 09:27

uwsgiのインストールに関して、少々疑問点があり質問させて貰いました。
こちらの記事を読んでいたのですが、仮想環境に入った状態でpipによりuwsgiをインストールを行なっていますが、こういったAPサーバーというものは、仮想環境にインストールするのではなく、サーバー全体で、例えば「 sudo apt-get install」のような形でインストールするものではないのでしょうか?
例えば、Nginxは仮想環境内でインストールするというのは聞いたことがありませんし、少々ここの部分が疑問です
どなたか、ご助言頂けましたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

こういったAPサーバーというものは、仮想環境にインストールするのではなく、サーバー全体で、例えば「 sudo apt-get install」のような形でインストールするものではないのでしょうか?

いえ、WSGIサーバはPythonプログラムと通信するサーバではなく、Pythonプログラムを組み込んで動かすサーバですので、自分で書いたPythonコードを動かす環境で動かす必要があります。

例えば、Nginxは仮想環境内でインストールするというのは聞いたことがありませんし

Dockerを使った開発だと、HTTPサーバも1つのコンテナに入れるものですし、そう不自然なことではありません。

投稿2020/10/07 09:45

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruuuu

2020/10/08 00:39

ご回答ありがとうございます。 Pythonプログラムを組み込んで動かすとなりますと、Pythonでなければuwsgiは動かせないということになってきますでしょうか?
guest

0

uwsgiは使った事がありませんが、軽く調べた感じでは他のpythonのモジュールと同じで、一つのpython環境に対してしかインストールされないようです。

おそらく、aptでインストールすると、aptでインストールされた(つまり、ディストリビューションが用意した)pythonでしか使えないでしょう。
ですので、仮想環境で使用するのであれば、仮想環境にインストールするpipコマンドでインストールする必要があります。
(言い換えれば、仮想環境を使わないのであれば、aptでインストールしても構いません)

投稿2020/10/07 23:35

katsuko

総合スコア3538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruuuu

2020/10/08 00:47

ご回答ありがとうございます。 参考になりました。
quickquip

2020/10/08 01:02 編集

PythonのWSGIアプリケーションを動かす**だけ**なら、後半はその通りです。 ただその場合、仮想環境を作る目的は「そのWSGIアプリケーションのため」ということになるのではないでしょうか。 その上で回答は、WSGIアプリケーションのために仮想環境を作ったのだから、uWSGIもその仮想環境にインストールしてしまうのが手っ取り早いし、トラブルも少ない。だから仮想環境にuWSGIを入れるのが楽、ということになるかと思います。 ("楽"なだけで”必須"ではありません。つまり"仮想環境で使用するのであれば、仮想環境にインストールするpipコマンドでインストールする必要があります"は微妙に正しくありません。uWSGIのオプションで、uWSGIは元のPythonに入れておいて、WSGIアプリケーションのためのパッケージ群は仮想環境から読み取らせる、ということは可能です)
katsuko

2020/10/08 11:30

quickquipさん、参考になります、ありがとうございます。 しかし、投稿前にuwsgiのオプションも調べたのに気づけなかったのは、不覚だったなぁ…。
guest

0

サーバー全体で、例えば「 sudo apt-get install」のような形でインストールするものではないのでしょうか?

もちろんそうしてもいいですよ。

https://uwsgi-docs.readthedocs.io/en/latest/Install.html

uWSGI is available as a package in several OS/distributions.

と書いてありますよね。


Ubuntuなら公式です。
https://packages.ubuntu.com/focal/uwsgi
https://packages.ubuntu.com/focal/uwsgi-plugin-python3

CentOSだとサードパーティーみたいですね。
https://centos.pkgs.org/8/getpagespeed-x86_64/uwsgi-2.0.17.1-2.el8.x86_64.rpm.html
https://centos.pkgs.org/8/getpagespeed-x86_64/uwsgi-plugin-python3-2.0.17.1-2.el8.x86_64.rpm.html

macOSのHomebrewにもあります。
https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/uwsgi.rb


"今使っているディストリビューションとバージョンとパッケージ管理ソフトでは自分が望むソフトウェアとバージョンが入手できない"とか
"サードパーティーのレポジトリからはインストールしたくない"とか
"今使っているディストリビューションの/usr/libはなるべく汚したくない"とか
"ディストリビューションが提供するバージョンに縛られるのは嫌だ。常に最新のバージョンがいい"とか
"設定ファイルの配置やオプションで指定するべきものがディストリビューションで違うと説明が面倒"とか
そういった事情があるなら、"自分でビルドする"、"自分の望むディレクトリにその環境を作る"のは当たり前の文化ではないですか?
自由と制約の兼ね合いで選べばいいことです。

投稿2020/10/07 14:31

編集2020/10/07 14:38
quickquip

総合スコア11235

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruuuu

2020/10/08 00:45

ご回答ありがとうございます。 ubuntuでは用意されていないバージョンもある為、pipで最新のものを入れたいといった需要に応える為というのもあるということですね。
quickquip

2020/10/08 01:08 編集

katsukoさんの回答(とそこに付けた私のコメント)が一番実態に近いと思います。 ただuWSGIはPythonのWSGIアプリケーションを動かすためだけのものではないですからこういう回答になりました。 (uWSGIを動かすにはPythonが必須ですが、uWSGIで動かすものはPythonプログラムとは限りません)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問