質問するログイン新規登録
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

venv

venvモジュールは、軽量な仮想環境の作成を行います。それぞれの仮想環境は、site ディレクトリに独立した Python パッケージの集合を持っています。仮想環境は、ベースPythonとも呼ばれる、すでにインストールされている Python の上に作成され、明示的にインストールしたパッケージのみが利用可能となるよう、ベースPython から隔離することもできます。

Python 3.x

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

Linux

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

Q&A

0回答

112閲覧

venv内においてpythonのバージョンを3.9から3.12や3.13にするとModuleNotFoundError: No module named 'requests'

wozniac777

総合スコア5

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

venv

venvモジュールは、軽量な仮想環境の作成を行います。それぞれの仮想環境は、site ディレクトリに独立した Python パッケージの集合を持っています。仮想環境は、ベースPythonとも呼ばれる、すでにインストールされている Python の上に作成され、明示的にインストールしたパッケージのみが利用可能となるよう、ベースPython から隔離することもできます。

Python 3.x

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

Linux

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

0グッド

1クリップ

投稿2025/09/16 01:04

0

1

実現したいこと

CentOS Stream9、Flask+Nginx+uWSGIの環境下でvenvを作っているのですが、venv内のpythonのバージョンを3.9から3.13に上げたいです。

発生している問題・分からないこと

以下のようにバージョンを上げると、ModuleNotFoundError: No module named 'requests'が出ています。pip freezeでインストールされているライブラリを見ても、既にインストール済み。pip install requestsを行っても、当然、「既に入っています」とメッセージが出ます。なぜかvenv内のライブラリを全て読み込めていないようです。

①python -m venv venv --clear(venvのバージョン固定を外す)
②rm -rf venv(venvの削除)
③python3.13 -m venv venv(venvの再作成)
④source ./venv/bin/activate(venvの有効化)
⑤pip install -r requirements.txt(パッケージの再インストール)

python3.12とpython3.13のバージョンアップを試しましたが、同様のエラーが出ています。
上記と全く同じ方法でpython3.9に戻すとエラーがなく通常通り運用を行えています。

エラーメッセージ

error

1ModuleNotFoundError: No module named 'requests'

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

①python -m venv venv --upgradeでpythonのバージョンアップを試みた→バージョン固定のため、変化せず。

②AlternativesにPythonのバージョン管理
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.13 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.12 2

update-alternatives --display python(リストの表示)
sudo update-alternatives --config python(新しいバージョンへのシンボリックリンクの設定)
→バージョン固定のため変化せず

2~3日いろいろ調べて、ようやくバージョンアップが出来たのは、venvをクリアしてvenvを作り直した方法だけでした。バージョンアップしたのはいいですが、アプリケーションサーバーを再起動すると、インターナルサーバーエラーでサーバーが止まってしまいます。どうしてよいのか分からず途方に暮れています。どうか、ご教授ください。

補足

実装環境はCentOS Stream9、Flask+Nginx+uWSGIになります。

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

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

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

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

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

TakaiY

2025/09/16 02:26

> ModuleNotFoundError: No module named 'requests' このエラーは何をしたときに出るエラーですか? venvをactivateした状態でpythonインタプリタを起動して「import requests」とすると
wozniac777

2025/09/16 02:35

コメントありがとうございます。 サイトにアクセスしたときにエラーが出ています。 main.py の最初らへんのimport requestsの読み込みのところで発生しています
wozniac777

2025/09/16 02:40

venvをアクティブにした状態でimportはバージョンアップした状態で試したいのですが、サーバーが落ちてしまって動かなくなるので、夜に試してみようと思います。
katsuko

2025/09/16 14:52

uWSGIはどのようにインストールしたのでしょうか。 仮想環境に入ってpipでインストールしないと、仮想環境のモジュールは認識しないと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問