ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?