ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
エラー内容
WARNING: pip is configured with locations that require TLS/SSL,
however the ssl module in Python is not available.
ERROR: Could not fetch URL https://pypi.org/simple/requests/:
There was a problem confirming the ssl certificate:
HTTPSConnectionPool(host='pypi.org', port=443):
Max retries exceeded with url: /simple/requests/
(Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available."))
原因
Python はビルド時に OS にある OpenSSL ヘッダ(openssl/ssl.h)を取り込んで ssl モジュールを組み込みます。ヘッダが無い状態でソースビルドした Python には ssl モジュールが入っておらず、pip が HTTPS で PyPI に接続できません。
典型的に起きる状況:
pyenv install/./configure && makeで Python をソースからビルド- その時点で OpenSSL 開発パッケージが OS に入っていなかった
- 後から OpenSSL を入れても Python は再ビルドしないと有効化されない
対処1: OS の OpenSSL 開発版を入れて Python を再ビルド
Ubuntu / Debian
# 1. ビルドに必要なライブラリを入れる
sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl libncursesw5-dev \
xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
# 2. pyenv の場合
pyenv uninstall 3.11.5
pyenv install 3.11.5
pyenv global 3.11.5
# 3. 検証
python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"
# → OpenSSL 3.0.2 ... のように表示されれば OK
pip install requests
# WARNING が出なければ成功
CentOS / RHEL / Rocky / AlmaLinux
sudo dnf install -y gcc make zlib-devel bzip2 bzip2-devel readline-devel \
sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel
# pyenv の場合
pyenv uninstall 3.11.5
pyenv install 3.11.5
macOS (Homebrew + pyenv)
# OpenSSL を入れる
brew install openssl readline sqlite3 xz zlib tcl-tk
# 環境変数を設定して pyenv install
export LDFLAGS="-L$(brew --prefix openssl)/lib"
export CPPFLAGS="-I$(brew --prefix openssl)/include"
export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig"
pyenv uninstall 3.11.5
pyenv install 3.11.5
# 検証
python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"
対処2: システム Python に切り替える
ビルドが面倒なら、OS パッケージマネージャの Python を使うのが最も確実:
# Ubuntu / Debian
sudo apt install -y python3 python3-pip python3-venv
# CentOS / RHEL
sudo dnf install -y python3 python3-pip
# 仮想環境を作って隔離
python3 -m venv ~/venv
source ~/venv/bin/activate
pip install requests
対処3: ソース直 ./configure する場合
cd ~/Python-3.11.5
./configure --prefix=/usr/local --enable-optimizations \
--with-openssl=/usr/local/openssl # ★ OpenSSL のパスを明示
make -j$(nproc)
sudo make altinstall
python3.11 -c "import ssl; print(ssl.OPENSSL_VERSION)"
緊急回避: --trusted-host で証明書検証スキップ
セキュリティ上の理由で推奨しません。どうしても今すぐパッケージを入れたい場合のみ:
pip install --trusted-host pypi.org \
--trusted-host files.pythonhosted.org \
--trusted-host pypi.python.org \
requests
# 永続化(非推奨)
cat > ~/.pip/pip.conf <<EOF
[global]
trusted-host =
pypi.org
files.pythonhosted.org
pypi.python.org
EOF
これは ssl モジュール無しでも動きますが、中間者攻撃で悪意あるパッケージを掴まされるリスクがあります。
Windows での同等エラー
Windows では公式インストーラーを使えば OpenSSL も同梱されており通常起きません。起きる場合:
- 古い Python 2.7 / 3.4 等を使っている → 新しい Python 3.10+ に変更
- Windows Defender / アンチウイルスが
_ssl.pydをブロック → 除外設定 - システムの環境変数
PYTHONHOMEが壊れている → 削除
根本確認コマンド
# Python が ssl モジュールを持っているか
python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"
# → ImportError: No module named ssl → 未組込
# → AttributeError: module 'ssl' has no attribute 'OPENSSL_VERSION' → 壊れている
# どこの Python を使っているか
which python3
ls -la $(which python3)
# pyenv 利用中か
pyenv version
pyenv versions
# OS の OpenSSL バージョン
openssl version
# Python ビルド時にどの OpenSSL を見たか
python3 -c "import ssl; print(ssl.OPENSSL_VERSION_INFO)"
FAQ
Q: 再ビルドしても直らない
A: 別の Python パス(/usr/local/bin/python3 等)が呼ばれている可能性。which -a python3 で全候補を確認し、PATH 順を見直してください。
Q: 社内 PyPI ミラーに HTTP で接続したい
A: --index-url http://internal.pypi/simple + --trusted-host internal.pypi。HTTPS 化を強く推奨。
Q: Docker イメージで再現する
A: FROM python:3.11-slim 等の公式イメージは ssl 同梱済。問題が起きるのは FROM alpine 等で apk add openssl-dev 忘れ。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- ModuleNotFoundError: No module named '~'; '~' is not a package
- pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available
- ...AppData/Local/Microsoft/WindowsApps/python: Permission denied
- 【pycharm】connecting to console が終わらない
- can only concatenate str (not "NoneType") to str
- can only concatenate str (not "datetime.datetime") to str
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?