{"id":43733,"date":"2025-08-04T15:40:30","date_gmt":"2025-08-04T06:40:30","guid":{"rendered":"https:\/\/techgym.jp\/?p=43733"},"modified":"2025-10-28T14:48:22","modified_gmt":"2025-10-28T05:48:22","slug":"python-package","status":"publish","type":"post","link":"https:\/\/techgym.jp\/column\/python-package\/","title":{"rendered":"Python\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u30d1\u30c3\u30b1\u30fc\u30b8\u4e00\u89a7\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5\u3010\u5b8c\u5168\u30ac\u30a4\u30c9\u3011"},"content":{"rendered":"\n<p><style>\n.ranking-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n}\n.ranking-table td {\n    padding: 20px;\n    border: 1px solid #e0e0e0;\n    vertical-align: top;\n}\n.ranking-table td:first-child {\n    width: 200px;\n    text-align: center;\n    background-color: #f9f9f9;\n}\n.ranking-table img {\n    display: block;\n    margin: 10px auto;\n    max-width: 100%;\n    height: auto;\n}\n.ranking-table a {\n    color: #0066cc;\n    text-decoration: none;\n    font-weight: bold;\n}\n.ranking-table a:hover {\n    text-decoration: underline;\n}\n<\/style><\/p>\n<table class=\"ranking-table\">\n<tbody>\n<tr>\n<td><a href=\"\/\/af.moshimo.com\/af\/c\/click?a_id=5161740&amp;p_id=6820&amp;pc_id=19517&amp;pl_id=90728\" rel=\"nofollow\" referrerpolicy=\"no-referrer-when-downgrade\" attributionsrc=\"\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/image.moshimo.com\/af-img\/6634\/000000090728.png?resize=120%2C60\" width=\"120\" height=\"60\" style=\"border: none;\" \/><\/a><img decoding=\"async\" src=\"\/\/i.moshimo.com\/af\/i\/impression?a_id=5161740&amp;p_id=6820&amp;pc_id=19517&amp;pl_id=90728\" width=\"1\" height=\"1\" style=\"border: none;\" loading=\"lazy\" \/><strong><a href=\"http:\/\/msm.to\/2ULVG5u\" target=\"_blank\" rel=\"noopener\">\u30d5\u30ea\u30fc\u30e9\u30f3\u30b9\u30dc\u30fc\u30c9<\/a><\/strong><\/td>\n<td>\n<p><strong>20\u4e07\u4ef6\u4ee5\u4e0a\u306e\u6848\u4ef6\u304b\u3089\u3001\u526f\u696d\u306b\u6700\u9069\u306a\u30ea\u30e2\u30fc\u30c8\u30fb\u90313\u301c\u306e\u6848\u4ef6\u3092\u4e00\u62ec\u691c\u7d22\u3067\u304d\u308b\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3002<\/strong><strong>\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u767b\u9332\u3067AI\u30b9\u30ab\u30a6\u30c8\u304c\u81ea\u52d5\u7684\u306b\u30de\u30c3\u30c1\u30f3\u30b0\u6848\u4ef6\u3092\u63d0\u6848\u3002<\/strong><strong>\u5e02\u5834\u7d71\u8a08\u3084\u5358\u4fa1\u76f8\u5834\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u53e3\u30b3\u30df\u3082\u7121\u6599\u3067\u95b2\u89a7\u53ef\u80fd\u306a\u305f\u3081\u3001\u672c\u696d\u3092\u7d9a\u3051\u306a\u304c\u3089\u52b9\u7387\u7684\u306b\u9ad8\u5358\u4fa1\u306e\u526f\u696d\u6848\u4ef6\u3092\u63a2\u305b\u307e\u3059\u3002<a href=\"http:\/\/msm.to\/2ULVG5u\" target=\"_blank\" rel=\"noopener\">\u30d5\u30ea\u30fc\u30e9\u30f3\u30b9\u30dc\u30fc\u30c9<\/a><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45E9XQ+679KMQ+40EC+61C2P\" rel=\"nofollow\"> <img loading=\"lazy\" decoding=\"async\" border=\"0\" width=\"120\" height=\"60\" alt=\"\" src=\"https:\/\/www29.a8.net\/svt\/bgt?aid=250928846375&amp;wid=001&amp;eno=01&amp;mid=s00000018714001014000&amp;mc=1\" \/><\/a> <img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" border=\"0\" width=\"1\" height=\"1\" src=\"https:\/\/i0.wp.com\/www14.a8.net\/0.gif?resize=1%2C1&#038;ssl=1\" alt=\"\" \/> <strong><a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45E9XQ+679KMQ+40EC+5YJRM\" target=\"_blank\" rel=\"noopener\">IT\u30d7\u30ed\u30d1\u30fc\u30c8\u30ca\u30fc\u30ba<\/a><\/strong><\/td>\n<td>\n<p><strong>\u90312\u301c3\u65e5\u304b\u3089\u50cd\u3051\u308b\u67d4\u8edf\u306a\u6848\u4ef6\u304c\u696d\u754c\u30c8\u30c3\u30d7\u30af\u30e9\u30b9\u306e\u8c4a\u5bcc\u3055\u3092\u8a87\u308b\u30d5\u30ea\u30fc\u30e9\u30f3\u30b9\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3002<\/strong><strong>\u30a8\u30f3\u30c9\u76f4\u5951\u7d04\u306e\u305f\u3081\u9ad8\u5358\u4fa1\u3067\u3001\u90313\u65e5\u7a3c\u50cd\u3067\u3082\u5341\u5206\u306a\u5831\u916c\u3092\u5f97\u3089\u308c\u307e\u3059\u3002\u30ea\u30e2\u30fc\u30c8\u3084\u6642\u9593\u30d5\u30ec\u30ad\u30b7\u30d6\u30eb\u306a\u6848\u4ef6\u3082\u591a\u6570\u3002\u30b9\u30bf\u30fc\u30c8\u30a2\u30c3\u30d7\u30fb\u30d9\u30f3\u30c1\u30e3\u30fc\u4e2d\u5fc3\u3067\u3001\u30c8\u30ec\u30f3\u30c9\u6280\u8853\u3092\u4f7f\u3063\u305f\u9b45\u529b\u7684\u306a\u6848\u4ef6\u304c\u63c3\u3063\u3066\u3044\u307e\u3059\u3002\u5c02\u5c5e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u6848\u4ef6\u7d39\u4ecb\u304b\u3089\u5951\u7d04\u4ea4\u6e09\u307e\u3067\u30b5\u30dd\u30fc\u30c8\u3002\u5229\u7528\u4f01\u696d2,000\u793e\u4ee5\u4e0a\u306e\u5b9f\u7e3e\u3002<a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45E9XQ+679KMQ+40EC+5YJRM\" target=\"_blank\" rel=\"noopener\">IT\u30d7\u30ed\u30d1\u30fc\u30c8\u30ca\u30fc\u30ba<\/a><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45G89H+AOM1KI+3TVC+BYLJL\" rel=\"nofollow\"> <img loading=\"lazy\" decoding=\"async\" border=\"0\" width=\"100\" height=\"60\" alt=\"\" src=\"https:\/\/www21.a8.net\/svt\/bgt?aid=251019989646&amp;wid=001&amp;eno=01&amp;mid=s00000017868002009000&amp;mc=1\" \/><\/a> <img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" border=\"0\" width=\"1\" height=\"1\" src=\"https:\/\/i0.wp.com\/www16.a8.net\/0.gif?resize=1%2C1&#038;ssl=1\" alt=\"\" \/> <strong> <a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45G89H+AOM1KI+3TVC+BWVTE\" target=\"_blank\" rel=\"noopener\">Midworks<\/a> <\/strong><\/td>\n<td><strong>10,000\u4ef6\u4ee5\u4e0a\u306e\u6848\u4ef6\u3092\u4fdd\u6709\u3057\u3001\u90313\u65e5\u301c\u30fb\u30d5\u30eb\u30ea\u30e2\u30fc\u30c8\u306a\u3069\u67d4\u8edf\u306a\u50cd\u304d\u65b9\u306b\u5bfe\u5fdc\u3002\u9ad8\u5358\u4fa1\u6848\u4ef6\u304c\u8c4a\u5bcc\u3067\u3001\u5831\u916c\u4fdd\u969c\u5236\u5ea6\uff0860%\uff09\u3084\u4fdd\u967a\u6599\u8ca0\u62c5\uff0850%\uff09\u306a\u3069\u6b63\u793e\u54e1\u4e26\u307f\u306e\u624b\u539a\u3044\u798f\u5229\u539a\u751f\u304c\u7279\u5fb4\u3002\u901a\u52e4\u4ea4\u901a\u8cbb\uff08\u67083\u4e07\u5186\uff09\u3001\u30b9\u30ad\u30eb\u30a2\u30c3\u30d7\u8cbb\u7528\uff08\u67081\u4e07\u5186\uff09\u306e\u652f\u7d66\u306b\u52a0\u3048\u3001\u30ea\u30ed\u30af\u30e9\u30d6\u30fbfreee\u304c\u7121\u6599\u5229\u7528\u53ef\u80fd\u3002\u975e\u516c\u958b\u6848\u4ef680%\u4ee5\u4e0a\u3001\u652f\u6255\u3044\u30b5\u30a4\u30c820\u65e5\u3067\u5b89\u5fc3\u3057\u3066\u7a3c\u50cd\u3067\u304d\u307e\u3059\u3002<a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45G89H+AOM1KI+3TVC+BWVTE\" target=\"_blank\" rel=\"noopener\">Midworks<\/a><\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n\n<p><iframe loading=\"lazy\" width=\"560\" height=\"314\" src=\"\/\/www.youtube.com\/embed\/7iX9nAJE0cE\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>Python\u3067\u958b\u767a\u3092\u3057\u3066\u3044\u308b\u3068\u3001\u73fe\u5728\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u78ba\u8a8d\u3057\u305f\u3044\u5834\u9762\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002\u300c\u3069\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u304b\u5206\u304b\u3089\u306a\u3044\u300d\u300c\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u78ba\u8a8d\u3057\u305f\u3044\u300d\u300crequirements.txt\u3092\u4f5c\u6210\u3057\u305f\u3044\u300d\u3068\u3044\u3063\u305f\u5834\u5408\u306b\u5f79\u7acb\u3064\u65b9\u6cd5\u3092\u3001\u5177\u4f53\u7684\u306a\u30b3\u30de\u30f3\u30c9\u4f8b\u3068\u3068\u3082\u306b\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n<h2>\u30d1\u30c3\u30b1\u30fc\u30b8\u4e00\u89a7\u3092\u53d6\u5f97\u3059\u308b\u7406\u7531<\/h2>\n<h3>\u306a\u305c\u30d1\u30c3\u30b1\u30fc\u30b8\u4e00\u89a7\u304c\u5fc5\u8981\u306a\u306e\u304b<\/h3>\n<ul>\n<li><strong>\u74b0\u5883\u306e\u78ba\u8a8d<\/strong>: \u73fe\u5728\u306e\u958b\u767a\u74b0\u5883\u306e\u72b6\u614b\u3092\u628a\u63e1<\/li>\n<li><strong>requirements.txt\u4f5c\u6210<\/strong>: \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f9d\u5b58\u95a2\u4fc2\u3092\u8a18\u9332<\/li>\n<li><strong>\u74b0\u5883\u306e\u8907\u88fd<\/strong>: \u4ed6\u306e\u74b0\u5883\u3067\u540c\u3058\u30d1\u30c3\u30b1\u30fc\u30b8\u69cb\u6210\u3092\u518d\u73fe<\/li>\n<li><strong>\u30c7\u30d0\u30c3\u30b0<\/strong>: \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u7af6\u5408\u3084\u554f\u984c\u306e\u7279\u5b9a<\/li>\n<li><strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u76e3\u67fb<\/strong>: \u53e4\u3044\u30d1\u30c3\u30b1\u30fc\u30b8\u3084\u8106\u5f31\u6027\u306e\u30c1\u30a7\u30c3\u30af<\/li>\n<li><strong>\u74b0\u5883\u306e\u6574\u7406<\/strong>: \u4e0d\u8981\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u7279\u5b9a\u3068\u524a\u9664<\/li>\n<\/ul>\n<h3>\u3088\u304f\u3042\u308b\u4f7f\u7528\u5834\u9762<\/h3>\n<pre><code class=\"language-bash\"># \u65b0\u3057\u3044\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u958b\u59cb\u6642\npip list\n\n# \u672c\u756a\u74b0\u5883\u3078\u306e\u30c7\u30d7\u30ed\u30a4\u524d\npip freeze &gt; requirements.txt\n\n# \u958b\u767a\u74b0\u5883\u306e\u5171\u6709\u6642\npip list --format=freeze\n\n# \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u7af6\u5408\u8abf\u67fb\u6642\npip show package_name\n<\/code><\/pre>\n<h2>pip list\u30b3\u30de\u30f3\u30c9\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9<\/h2>\n<h3>\u57fa\u672c\u7684\u306a\u30b3\u30de\u30f3\u30c9<\/h3>\n<pre><code class=\"language-bash\"># \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4e00\u89a7\u8868\u793a\npip list\n\n# Python 3\u3092\u660e\u793a\u7684\u306b\u6307\u5b9a\npip3 list\n\n# \u7279\u5b9a\u306e\u4eee\u60f3\u74b0\u5883\u3067\u5b9f\u884c\nsource venv\/bin\/activate\npip list\n<\/code><\/pre>\n<p>\u57fa\u672c\u7684\u306a\u51fa\u529b\u4f8b\uff1a<\/p>\n<pre><code>Package    Version\n---------- -------\ncertifi    2023.7.22\nnumpy      1.24.3\npandas     2.0.3\npip        23.3.1\nrequests   2.31.0\nsetuptools 68.2.2\n<\/code><\/pre>\n<h3>\u3088\u304f\u4f7f\u7528\u3055\u308c\u308b\u30aa\u30d7\u30b7\u30e7\u30f3<\/h3>\n<pre><code class=\"language-bash\"># \u30a2\u30a6\u30c8\u30c7\u30fc\u30c8\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u307f\u8868\u793a\npip list --outdated\n\n# \u30ed\u30fc\u30ab\u30eb\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u307f\u8868\u793a\npip list --local\n\n# \u30e6\u30fc\u30b6\u30fc\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u307f\npip list --user\n\n# \u6700\u65b0\u3067\u306a\u3044\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u8a73\u7d30\u60c5\u5831\npip list --outdated --verbose\n\n# \u7279\u5b9a\u306e\u5f62\u5f0f\u3067\u51fa\u529b\npip list --format=columns\npip list --format=freeze\npip list --format=json\n<\/code><\/pre>\n<h3>\u51fa\u529b\u5f62\u5f0f\u306e\u6bd4\u8f03<\/h3>\n<pre><code class=\"language-bash\"># \u30c7\u30d5\u30a9\u30eb\u30c8\u5f62\u5f0f\uff08columns\uff09\npip list\n# Package    Version\n# ---------- -------\n# requests   2.31.0\n# pandas     2.0.3\n\n# freeze\u5f62\u5f0f\npip list --format=freeze\n# requests==2.31.0\n# pandas==2.0.3\n\n# JSON\u5f62\u5f0f\npip list --format=json\n# [{\"name\": \"requests\", \"version\": \"2.31.0\"}, {\"name\": \"pandas\", \"version\": \"2.0.3\"}]\n<\/code><\/pre>\n<h2>pip freeze\u30b3\u30de\u30f3\u30c9\u306e\u6d3b\u7528\u6cd5<\/h2>\n<h3>pip freeze\u306e\u57fa\u672c\u4f7f\u7528\u6cd5<\/h3>\n<pre><code class=\"language-bash\"># requirements.txt\u5f62\u5f0f\u3067\u51fa\u529b\npip freeze\n\n# \u30d5\u30a1\u30a4\u30eb\u306b\u4fdd\u5b58\npip freeze &gt; requirements.txt\n\n# \u7279\u5b9a\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u307f\npip freeze | grep requests\n\n# \u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u9806\u306b\u30bd\u30fc\u30c8\npip freeze | sort\n<\/code><\/pre>\n<h3>pip list\u3068pip freeze\u306e\u9055\u3044<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u9805\u76ee<\/th>\n<th>pip list<\/th>\n<th>pip freeze<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u51fa\u529b\u5f62\u5f0f<\/td>\n<td>\u8868\u5f62\u5f0f\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\uff09<\/td>\n<td>\u30d1\u30c3\u30b1\u30fc\u30b8==\u30d0\u30fc\u30b8\u30e7\u30f3<\/td>\n<\/tr>\n<tr>\n<td>\u7528\u9014<\/td>\n<td>\u78ba\u8a8d\u30fb\u8868\u793a<\/td>\n<td>requirements.txt\u751f\u6210<\/td>\n<\/tr>\n<tr>\n<td>\u4f9d\u5b58\u95a2\u4fc2<\/td>\n<td>\u3059\u3079\u3066\u8868\u793a<\/td>\n<td>\u30c8\u30c3\u30d7\u30ec\u30d9\u30eb\u306e\u307f\uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09<\/td>\n<\/tr>\n<tr>\n<td>\u30ab\u30b9\u30bf\u30de\u30a4\u30ba<\/td>\n<td>\u8c4a\u5bcc\u306a\u30aa\u30d7\u30b7\u30e7\u30f3<\/td>\n<td>\u30b7\u30f3\u30d7\u30eb<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\u5b9f\u7528\u7684\u306a\u4f7f\u7528\u4f8b<\/h3>\n<pre><code class=\"language-bash\"># \u73fe\u5728\u306e\u74b0\u5883\u3092requirements.txt\u306b\u4fdd\u5b58\npip freeze &gt; requirements.txt\n\n# \u65e2\u5b58\u306erequirements.txt\u3068\u6bd4\u8f03\npip freeze &gt; current_packages.txt\ndiff requirements.txt current_packages.txt\n\n# \u7279\u5b9a\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u78ba\u8a8d\npip freeze | grep -i django\n# Django==4.2.7\n\n# \u30d1\u30c3\u30b1\u30fc\u30b8\u6570\u3092\u30ab\u30a6\u30f3\u30c8\npip freeze | wc -l\n# 42\n\n# \u7279\u5b9a\u306e\u6587\u5b57\u5217\u3092\u542b\u3080\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u691c\u7d22\npip freeze | grep -E \"(test|dev)\"\n# pytest==7.4.3\n# pytest-django==4.7.0\n<\/code><\/pre>\n<h2>\u30d1\u30c3\u30b1\u30fc\u30b8\u60c5\u5831\u306e\u8a73\u7d30\u8868\u793a<\/h2>\n<h3>pip show\u30b3\u30de\u30f3\u30c9\u306e\u4f7f\u7528\u6cd5<\/h3>\n<pre><code class=\"language-bash\"># \u7279\u5b9a\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u8a73\u7d30\u60c5\u5831\npip show requests\n\n# \u8907\u6570\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u60c5\u5831\u3092\u4e00\u5ea6\u306b\u8868\u793a\npip show requests pandas numpy\n\n# \u4f9d\u5b58\u95a2\u4fc2\u3082\u542b\u3081\u3066\u8868\u793a\npip show --verbose requests\n\n# \u30d5\u30a1\u30a4\u30eb\u4e00\u89a7\u3082\u8868\u793a\npip show --files requests\n<\/code><\/pre>\n<p>\u51fa\u529b\u4f8b\uff1a<\/p>\n<pre><code>Name: requests\nVersion: 2.31.0\nSummary: Python HTTP for Humans.\nHome-page: https:\/\/requests.readthedocs.io\nAuthor: Kenneth Reitz\nAuthor-email: me@kennethreitz.org\nLicense: Apache 2.0\nLocation: \/usr\/local\/lib\/python3.11\/site-packages\nRequires: certifi, charset-normalizer, idna, urllib3\nRequired-by: \n<\/code><\/pre>\n<h3>\u30d1\u30c3\u30b1\u30fc\u30b8\u60c5\u5831\u306e\u6d3b\u7528\u65b9\u6cd5<\/h3>\n<pre><code class=\"language-bash\"># \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5834\u6240\u306e\u78ba\u8a8d\npip show requests | grep Location\n\n# \u4f9d\u5b58\u95a2\u4fc2\u306e\u78ba\u8a8d\npip show requests | grep Requires\n\n# \u30e9\u30a4\u30bb\u30f3\u30b9\u60c5\u5831\u306e\u78ba\u8a8d\npip show requests | grep License\n\n# \u8907\u6570\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u4e00\u89a7\nfor package in $(pip freeze | cut -d= -f1); do\n    echo -n \"$package: \"\n    pip show $package | grep License | cut -d: -f2\ndone\n<\/code><\/pre>\n<h2>Python\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u30d1\u30c3\u30b1\u30fc\u30b8\u4e00\u89a7\u3092\u53d6\u5f97<\/h2>\n<h3>pkg\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u305f\u65b9\u6cd5<\/h3>\n<pre><code class=\"language-python\">import pkg_resources\n\ndef get_installed_packages():\n    \"\"\"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4e00\u89a7\u3092\u53d6\u5f97\"\"\"\n    installed_packages = []\n    \n    for dist in pkg_resources.working_set:\n        installed_packages.append({\n            'name': dist.project_name,\n            'version': dist.version,\n            'location': dist.location\n        })\n    \n    return sorted(installed_packages, key=lambda x: x['name'])\n\n# \u4f7f\u7528\u4f8b\npackages = get_installed_packages()\nfor package in packages:\n    print(f\"{package['name']}=={package['version']}\")\n<\/code><\/pre>\n<h3>importlib.metadata\u3092\u4f7f\u7528\u3057\u305f\u65b9\u6cd5\uff08Python 3.8+\uff09<\/h3>\n<pre><code class=\"language-python\">from importlib import metadata\nimport sys\n\ndef get_package_info():\n    \"\"\"\u30d1\u30c3\u30b1\u30fc\u30b8\u60c5\u5831\u3092\u8a73\u7d30\u306b\u53d6\u5f97\"\"\"\n    packages = []\n    \n    for dist in metadata.distributions():\n        try:\n            package_info = {\n                'name': dist.metadata['Name'],\n                'version': dist.version,\n                'summary': dist.metadata.get('Summary', ''),\n                'author': dist.metadata.get('Author', ''),\n                'license': dist.metadata.get('License', ''),\n                'requires': dist.metadata.get('Requires-Dist', [])\n            }\n            packages.append(package_info)\n        except Exception as e:\n            print(f\"Error processing package: {e}\", file=sys.stderr)\n    \n    return sorted(packages, key=lambda x: x['name'])\n\n# \u4f7f\u7528\u4f8b\npackages = get_package_info()\nfor package in packages[:5]:  # \u6700\u521d\u306e5\u500b\u306e\u307f\u8868\u793a\n    print(f\"Name: {package['name']}\")\n    print(f\"Version: {package['version']}\")\n    print(f\"Summary: {package['summary']}\")\n    print(\"-\" * 40)\n<\/code><\/pre>\n<h3>subprocess\u3092\u4f7f\u7528\u3057\u3066pip\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c<\/h3>\n<pre><code class=\"language-python\">import subprocess\nimport json\n\ndef get_packages_via_pip():\n    \"\"\"pip\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3063\u3066\u30d1\u30c3\u30b1\u30fc\u30b8\u4e00\u89a7\u3092\u53d6\u5f97\"\"\"\n    try:\n        # pip list --format=json \u3092\u5b9f\u884c\n        result = subprocess.run(\n            ['pip', 'list', '--format=json'],\n            capture_output=True,\n            text=True,\n            check=True\n        )\n        \n        packages = json.loads(result.stdout)\n        return packages\n    \n    except subprocess.CalledProcessError as e:\n        print(f\"Error executing pip command: {e}\")\n        return []\n    except json.JSONDecodeError as e:\n        print(f\"Error parsing JSON output: {e}\")\n        return []\n\n# \u4f7f\u7528\u4f8b\npackages = get_packages_via_pip()\nprint(f\"Total packages installed: {len(packages)}\")\n\nfor package in packages[:10]:  # \u6700\u521d\u306e10\u500b\u306e\u307f\u8868\u793a\n    print(f\"{package['name']} ({package['version']})\")\n<\/code><\/pre>\n<h3>\u30ab\u30b9\u30bf\u30e0\u95a2\u6570\u306e\u4f5c\u6210<\/h3>\n<pre><code class=\"language-python\">import pkg_resources\nfrom datetime import datetime\nimport os\nimport sys\n\nclass PackageManager:\n    \"\"\"\u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406\u306e\u305f\u3081\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30af\u30e9\u30b9\"\"\"\n    \n    @staticmethod\n    def get_all_packages():\n        \"\"\"\u3059\u3079\u3066\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u60c5\u5831\u3092\u53d6\u5f97\"\"\"\n        packages = []\n        for dist in pkg_resources.working_set:\n            packages.append({\n                'name': dist.project_name,\n                'version': dist.version,\n                'location': dist.location,\n                'requires': [str(req) for req in dist.requires()]\n            })\n        return sorted(packages, key=lambda x: x['name'])\n    \n    @staticmethod\n    def export_to_requirements(filename='requirements.txt'):\n        \"\"\"requirements.txt\u30d5\u30a1\u30a4\u30eb\u3092\u751f\u6210\"\"\"\n        packages = PackageManager.get_all_packages()\n        with open(filename, 'w') as f:\n            f.write(f\"# Generated on {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\\n\")\n            f.write(f\"# Python {sys.version.split()[0]}\\n\\n\")\n            \n            for package in packages:\n                f.write(f\"{package['name']}=={package['version']}\\n\")\n        \n        print(f\"Requirements exported to {filename}\")\n    \n    @staticmethod\n    def find_package(search_term):\n        \"\"\"\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u691c\u7d22\"\"\"\n        packages = PackageManager.get_all_packages()\n        results = []\n        \n        for package in packages:\n            if search_term.lower() in package['name'].lower():\n                results.append(package)\n        \n        return results\n    \n    @staticmethod\n    def get_package_size_estimate():\n        \"\"\"\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30b5\u30a4\u30ba\u3092\u63a8\u5b9a\"\"\"\n        packages = PackageManager.get_all_packages()\n        size_info = []\n        \n        for package in packages:\n            location = package['location']\n            if os.path.exists(location):\n                # \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30a4\u30ba\u306e\u8a08\u7b97\uff08\u7c21\u6613\u7248\uff09\n                total_size = 0\n                package_dir = os.path.join(location, package['name'].replace('-', '_'))\n                if os.path.exists(package_dir):\n                    for dirpath, dirnames, filenames in os.walk(package_dir):\n                        for filename in filenames:\n                            filepath = os.path.join(dirpath, filename)\n                            try:\n                                total_size += os.path.getsize(filepath)\n                            except (OSError, IOError):\n                                pass\n                \n                size_info.append({\n                    'name': package['name'],\n                    'version': package['version'],\n                    'size_mb': round(total_size \/ (1024 * 1024), 2)\n                })\n        \n        return sorted(size_info, key=lambda x: x['size_mb'], reverse=True)\n\n# \u4f7f\u7528\u4f8b\nif __name__ == \"__main__\":\n    # \u3059\u3079\u3066\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u8868\u793a\n    packages = PackageManager.get_all_packages()\n    print(f\"Total packages: {len(packages)}\\n\")\n    \n    # \u6700\u521d\u306e5\u500b\u3092\u8868\u793a\n    for package in packages[:5]:\n        print(f\"Name: {package['name']}\")\n        print(f\"Version: {package['version']}\")\n        print(f\"Location: {package['location']}\")\n        print(f\"Requires: {', '.join(package['requires'])}\")\n        print(\"-\" * 50)\n    \n    # requirements.txt\u3092\u751f\u6210\n    PackageManager.export_to_requirements()\n    \n    # \u7279\u5b9a\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u691c\u7d22\n    django_packages = PackageManager.find_package('django')\n    print(f\"\\nDjango related packages: {len(django_packages)}\")\n    for package in django_packages:\n        print(f\"  {package['name']} ({package['version']})\")\n<\/code><\/pre>\n<h2>\u4eee\u60f3\u74b0\u5883\u3067\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406<\/h2>\n<h3>venv\u74b0\u5883\u3067\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u78ba\u8a8d<\/h3>\n<pre><code class=\"language-bash\"># \u4eee\u60f3\u74b0\u5883\u3092\u4f5c\u6210\npython -m venv myproject_env\n\n# \u4eee\u60f3\u74b0\u5883\u3092\u6709\u52b9\u5316\uff08Linux\/macOS\uff09\nsource myproject_env\/bin\/activate\n\n# \u4eee\u60f3\u74b0\u5883\u3092\u6709\u52b9\u5316\uff08Windows\uff09\nmyproject_env\\Scripts\\activate\n\n# \u4eee\u60f3\u74b0\u5883\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u4e00\u89a7\npip list\n\n# \u30b0\u30ed\u30fc\u30d0\u30eb\u74b0\u5883\u3068\u306e\u6bd4\u8f03\npip list --local\n\n# \u4eee\u60f3\u74b0\u5883\u306e\u60c5\u5831\u3092\u4fdd\u5b58\npip freeze &gt; myproject_requirements.txt\n\n# \u4eee\u60f3\u74b0\u5883\u3092\u7121\u52b9\u5316\ndeactivate\n<\/code><\/pre>\n<h3>conda\u74b0\u5883\u3067\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406<\/h3>\n<pre><code class=\"language-bash\"># conda\u74b0\u5883\u306e\u4f5c\u6210\nconda create -n myproject python=3.11\n\n# \u74b0\u5883\u306e\u6709\u52b9\u5316\nconda activate myproject\n\n# conda\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\nconda list\n\n# pip\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\npip list\n\n# \u4e21\u65b9\u306e\u60c5\u5831\u3092\u542b\u3080\u74b0\u5883\u30d5\u30a1\u30a4\u30eb\nconda env export &gt; environment.yml\n\n# pip\u5c02\u7528\u306erequirements.txt\npip freeze &gt; requirements.txt\n\n# \u74b0\u5883\u306e\u7121\u52b9\u5316\nconda deactivate\n<\/code><\/pre>\n<h3>pipenv\u74b0\u5883\u3067\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406<\/h3>\n<pre><code class=\"language-bash\"># pipenv\u74b0\u5883\u3067\u30b7\u30a7\u30eb\u3092\u958b\u59cb\npipenv shell\n\n# \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u30d1\u30c3\u30b1\u30fc\u30b8\npipenv graph\n\n# Pipfile\u306e\u5185\u5bb9\u78ba\u8a8d\ncat Pipfile\n\n# requirements.txt\u5f62\u5f0f\u3067\u51fa\u529b\npipenv requirements &gt; requirements.txt\n\n# \u958b\u767a\u7528\u30d1\u30c3\u30b1\u30fc\u30b8\u3082\u542b\u3081\u308b\npipenv requirements --dev &gt; requirements-dev.txt\n<\/code><\/pre>\n<h3>\u8907\u6570\u74b0\u5883\u306e\u6bd4\u8f03<\/h3>\n<pre><code class=\"language-python\">import subprocess\nimport json\nfrom pathlib import Path\n\ndef compare_environments():\n    \"\"\"\u8907\u6570\u306e\u4eee\u60f3\u74b0\u5883\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u6bd4\u8f03\"\"\"\n    environments = {\n        'global': None,\n        'venv1': 'path\/to\/venv1',\n        'venv2': 'path\/to\/venv2'\n    }\n    \n    env_packages = {}\n    \n    for env_name, env_path in environments.items():\n        if env_path:\n            # \u4eee\u60f3\u74b0\u5883\u306epip\u3092\u4f7f\u7528\n            pip_path = Path(env_path) \/ 'bin' \/ 'pip'  # Linux\/macOS\n            if not pip_path.exists():\n                pip_path = Path(env_path) \/ 'Scripts' \/ 'pip.exe'  # Windows\n        else:\n            # \u30b0\u30ed\u30fc\u30d0\u30eb\u74b0\u5883\u306epip\n            pip_path = 'pip'\n        \n        try:\n            result = subprocess.run(\n                [str(pip_path), 'list', '--format=json'],\n                capture_output=True,\n                text=True,\n                check=True\n            )\n            packages = json.loads(result.stdout)\n            env_packages[env_name] = {pkg['name']: pkg['version'] for pkg in packages}\n        except Exception as e:\n            print(f\"Error getting packages for {env_name}: {e}\")\n            env_packages[env_name] = {}\n    \n    return env_packages\n\n# \u4f7f\u7528\u4f8b\nenv_comparison = compare_environments()\nfor env_name, packages in env_comparison.items():\n    print(f\"\\n{env_name}: {len(packages)} packages\")\n    for name, version in list(packages.items())[:5]:  # \u6700\u521d\u306e5\u500b\u306e\u307f\n        print(f\"  {name}: {version}\")\n<\/code><\/pre>\n<h2>\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u691c\u7d22\u3068\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0<\/h2>\n<h3>\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067\u306e\u691c\u7d22<\/h3>\n<pre><code class=\"language-bash\"># \u7279\u5b9a\u306e\u6587\u5b57\u5217\u3092\u542b\u3080\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u691c\u7d22\npip list | grep -i django\n\n# \u8907\u6570\u306e\u6761\u4ef6\u3067\u691c\u7d22\npip list | grep -E \"(test|dev|debug)\"\n\n# \u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7\u3067\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\npip list | grep -E \"\\b2\\.\"  # \u30d0\u30fc\u30b8\u30e7\u30f32.x\u7cfb\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\n\n# \u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u9806\u3067\u30bd\u30fc\u30c8\npip list --format=freeze | sort\n\n# \u30d1\u30c3\u30b1\u30fc\u30b8\u6570\u306e\u30ab\u30a6\u30f3\u30c8\npip list | wc -l\n\n# \u7279\u5b9a\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u307f\u8868\u793a\npip show requests | grep Version\n<\/code><\/pre>\n<h3>\u9ad8\u5ea6\u306a\u691c\u7d22\u3068\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0<\/h3>\n<pre><code class=\"language-bash\"># \u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u53ef\u80fd\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u8a73\u7d30\npip list --outdated --format=columns\n\n# \u30ed\u30fc\u30ab\u30eb\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u307f\npip list --local --format=freeze\n\n# \u7279\u5b9a\u306e\u5834\u6240\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\npip list --verbose | grep \"\/usr\/local\"\n\n# \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u95a2\u9023\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u691c\u7d22\npip list | grep -i -E \"(security|crypto|ssl|auth)\"\n\n# \u958b\u767a\u30c4\u30fc\u30eb\u95a2\u9023\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u691c\u7d22\npip list | grep -i -E \"(test|lint|format|debug)\"\n<\/code><\/pre>\n<h3>Python\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u306e\u9ad8\u5ea6\u306a\u691c\u7d22<\/h3>\n<pre><code class=\"language-python\">import pkg_resources\nimport re\nfrom collections import defaultdict\n\nclass PackageSearcher:\n    \"\"\"\u30d1\u30c3\u30b1\u30fc\u30b8\u691c\u7d22\u306e\u305f\u3081\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30af\u30e9\u30b9\"\"\"\n    \n    def __init__(self):\n        self.packages = list(pkg_resources.working_set)\n    \n    def search_by_name(self, pattern):\n        \"\"\"\u540d\u524d\u3067\u691c\u7d22\uff08\u6b63\u898f\u8868\u73fe\u5bfe\u5fdc\uff09\"\"\"\n        regex = re.compile(pattern, re.IGNORECASE)\n        results = []\n        \n        for package in self.packages:\n            if regex.search(package.project_name):\n                results.append({\n                    'name': package.project_name,\n                    'version': package.version,\n                    'location': package.location\n                })\n        \n        return results\n    \n    def search_by_version(self, version_pattern):\n        \"\"\"\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u691c\u7d22\"\"\"\n        regex = re.compile(version_pattern)\n        results = []\n        \n        for package in self.packages:\n            if regex.search(package.version):\n                results.append({\n                    'name': package.project_name,\n                    'version': package.version\n                })\n        \n        return results\n    \n    def get_packages_by_location(self):\n        \"\"\"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5834\u6240\u3067\u30b0\u30eb\u30fc\u30d7\u5316\"\"\"\n        location_groups = defaultdict(list)\n        \n        for package in self.packages:\n            location_groups[package.location].append({\n                'name': package.project_name,\n                'version': package.version\n            })\n        \n        return dict(location_groups)\n    \n    def find_development_packages(self):\n        \"\"\"\u958b\u767a\u95a2\u9023\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u691c\u7d22\"\"\"\n        dev_keywords = ['test', 'lint', 'format', 'debug', 'dev', 'mock', 'coverage']\n        dev_packages = []\n        \n        for package in self.packages:\n            package_name = package.project_name.lower()\n            if any(keyword in package_name for keyword in dev_keywords):\n                dev_packages.append({\n                    'name': package.project_name,\n                    'version': package.version,\n                    'category': self._categorize_dev_package(package_name)\n                })\n        \n        return dev_packages\n    \n    def _categorize_dev_package(self, package_name):\n        \"\"\"\u958b\u767a\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30ab\u30c6\u30b4\u30ea\u5206\u3051\"\"\"\n        if 'test' in package_name:\n            return 'testing'\n        elif any(word in package_name for word in ['lint', 'flake', 'pylint']):\n            return 'linting'\n        elif any(word in package_name for word in ['format', 'black', 'autopep']):\n            return 'formatting'\n        elif 'debug' in package_name:\n            return 'debugging'\n        elif any(word in package_name for word in ['mock', 'fake']):\n            return 'mocking'\n        elif 'coverage' in package_name:\n            return 'coverage'\n        else:\n            return 'other'\n\n# \u4f7f\u7528\u4f8b\nsearcher = PackageSearcher()\n\n# Django\u95a2\u9023\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u691c\u7d22\ndjango_packages = searcher.search_by_name(r'django')\nprint(\"Django related packages:\")\nfor package in django_packages:\n    print(f\"  {package['name']} ({package['version']})\")\n\n# \u30d0\u30fc\u30b8\u30e7\u30f32.x\u7cfb\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u691c\u7d22\nv2_packages = searcher.search_by_version(r'^2\\.')\nprint(f\"\\nVersion 2.x packages: {len(v2_packages)}\")\n\n# \u958b\u767a\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u691c\u7d22\ndev_packages = searcher.find_development_packages()\nprint(f\"\\nDevelopment packages: {len(dev_packages)}\")\ndev_by_category = defaultdict(list)\nfor package in dev_packages:\n    dev_by_category[package['category']].append(package['name'])\n\nfor category, packages in dev_by_category.items():\n    print(f\"  {category}: {', '.join(packages)}\")\n<\/code><\/pre>\n<h2>\u51fa\u529b\u5f62\u5f0f\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba<\/h2>\n<h3>\u8868\u5f62\u5f0f\u306e\u51fa\u529b<\/h3>\n<pre><code class=\"language-bash\"># \u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30ab\u30e9\u30e0\u5f62\u5f0f\npip list --format=columns\n\n# \u5e45\u3092\u8abf\u6574\u3057\u305f\u8868\u793a\npip list --format=columns | column -t\n\n# \u7279\u5b9a\u306e\u5217\u306e\u307f\u8868\u793a\npip list --format=freeze | cut -d'=' -f1  # \u30d1\u30c3\u30b1\u30fc\u30b8\u540d\u306e\u307f\npip list --format=freeze | cut -d'=' -f2  # \u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u307f\n<\/code><\/pre>\n<h3>JSON\u5f62\u5f0f\u3067\u306e\u51fa\u529b\u3068\u52a0\u5de5<\/h3>\n<pre><code class=\"language-bash\"># JSON\u5f62\u5f0f\u3067\u51fa\u529b\npip list --format=json\n\n# jq\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3063\u305f\u52a0\u5de5\uff08jq\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u5834\u5408\uff09\npip list --format=json | jq '.[] | select(.name | contains(\"django\"))'\npip list --format=json | jq 'sort_by(.name)'\npip list --format=json | jq 'length'  # \u30d1\u30c3\u30b1\u30fc\u30b8\u6570\n<\/code><\/pre>\n<h3>\u30ab\u30b9\u30bf\u30e0\u5f62\u5f0f\u3067\u306e\u51fa\u529b<\/h3>\n<pre><code class=\"language-python\">import subprocess\nimport json\nfrom tabulate import tabulate  # pip install tabulate\n\ndef format_package_list(format_type='table'):\n    \"\"\"\u30d1\u30c3\u30b1\u30fc\u30b8\u30ea\u30b9\u30c8\u3092\u69d8\u3005\u306a\u5f62\u5f0f\u3067\u51fa\u529b\"\"\"\n    \n    # pip\u304b\u3089\u30d1\u30c3\u30b1\u30fc\u30b8\u60c5\u5831\u3092\u53d6\u5f97\n    result = subprocess.run(\n        ['pip', 'list', '--format=json'],\n        capture_output=True,\n        text=True,\n        check=True\n    )\n    \n    packages = json.loads(result.stdout)\n    \n    if format_type == 'table':\n        # \u30c6\u30fc\u30d6\u30eb\u5f62\u5f0f\n        headers = ['Package', 'Version']\n        data = [[pkg['name'], pkg['version']] for pkg in packages]\n        return tabulate(data, headers=headers, tablefmt='grid')\n    \n    elif format_type == 'markdown':\n        # Markdown\u5f62\u5f0f\n        headers = ['Package', 'Version']\n        data = [[pkg['name'], pkg['version']] for pkg in packages]\n        return tabulate(data, headers=headers, tablefmt='pipe')\n    \n    elif format_type == 'csv':\n        # CSV\u5f62\u5f0f\n        import csv\n        import io\n        \n        output = io.StringIO()\n        writer = csv.writer(output)\n        writer.writerow(['Package', 'Version'])\n        for pkg in packages:\n            writer.writerow([pkg['name'], pkg['version']])\n        return output.getvalue()\n    \n    elif format_type == 'html':\n        # HTML\u5f62\u5f0f\n        headers = ['Package', 'Version']\n        data = [[pkg['name'], pkg['version']] for pkg in packages]\n        return tabulate(data, headers=headers, tablefmt='html')\n    \n    else:\n        return \"Unsupported format\"\n\n# \u4f7f\u7528\u4f8b\nprint(\"=== Table Format ===\")\nprint(format_package_list('table'))\n\nprint(\"\\n=== Markdown Format ===\")\nprint(format_package_list('markdown'))\n\nprint(\"\\n=== CSV Format ===\")\nprint(format_package_list('csv'))\n<\/code><\/pre>\n<h3>\u30ec\u30dd\u30fc\u30c8\u5f62\u5f0f\u3067\u306e\u51fa\u529b<\/h3>\n<pre><code class=\"language-python\">from datetime import datetime\nimport platform\nimport sys\nimport pkg_resources\n\ndef generate_package_report():\n    \"\"\"\u8a73\u7d30\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u30ec\u30dd\u30fc\u30c8\u3092\u751f\u6210\"\"\"\n    \n    packages = list(pkg_resources.working_set)\n    packages.sort(key=lambda x: x.project_name.lower())\n    \n    report = []\n    report.append(\"=\" * 60)\n    report.append(\"PYTHON PACKAGE REPORT\")\n    report.append(\"=\" * 60)\n    report.append(f\"Generated: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\")\n    report.append(f\"Python Version: {sys.version}\")\n    report.append(f\"Platform: {platform.platform()}\")\n    report.append(f\"Total Packages: {len(packages)}\")\n    report.append(\"\")\n    \n    # \u30ab\u30c6\u30b4\u30e9\u30a4\u30ba\n    categories = {\n        'Web Frameworks': ['django', 'flask', 'fastapi', 'tornado'],\n        'Data Science': ['pandas', 'numpy', 'scipy', 'scikit-learn', 'matplotlib'],\n        'Testing': ['pytest', 'unittest2', 'mock', 'nose'],\n        'Development Tools': ['pip', 'setuptools', 'wheel', 'twine'],\n        'HTTP Libraries': ['requests', 'urllib3', 'httpx']\n    }\n    \n    categorized = {cat: [] for cat in categories}\n    uncategorized = []\n    \n    for package in packages:\n        package_name = package.project_name.lower()\n        found_category = False\n        \n        for category, keywords in categories.items():\n            if any(keyword in package_name for keyword in keywords):\n                categorized[category].append(package)\n                found_category = True\n                break\n        \n        if not found_category:\n            uncategorized.append(package)\n    \n    # \u30ab\u30c6\u30b4\u30ea\u5225\u306b\u51fa\u529b\n    for category, category_packages in categorized.items():\n        if category_packages:\n            report.append(f\"{category} ({len(category_packages)} packages):\")\n            report.append(\"-\" * 40)\n            for package in sorted(category_packages, key=lambda x: x.project_name):\n                report.append(f\"  {package.project_name:&lt;20} {package.version}\")\n            report.append(\"\")\n    \n    # \u305d\u306e\u4ed6\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\n    if uncategorized:\n        report.append(f\"Other Packages ({len(uncategorized)} packages):\")\n        report.append(\"-\" * 40)\n        for package in uncategorized[:10]:  # \u6700\u521d\u306e10\u500b\u306e\u307f\n            report.append(f\"  {package.project_name:&lt;20} {package.version}\")\n        if len(uncategorized) &gt; 10:\n            report.append(f\"  ... and {len(uncategorized) - 10} more\")\n    \n    return \"\\n\".join(report)\n\n# \u30ec\u30dd\u30fc\u30c8\u751f\u6210\u3068\u4fdd\u5b58\nreport = generate_package_report()\nprint(report)\n\n# \u30d5\u30a1\u30a4\u30eb\u306b\u4fdd\u5b58\nwith open('package_report.txt', 'w', encoding='utf-8') as f:\n    f.write(report)\nprint(\"\\nReport saved to package_report.txt\")\n<\/code><\/pre>\n<h2>\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4f9d\u5b58\u95a2\u4fc2\u78ba\u8a8d<\/h2>\n<h3>pip show\u306b\u3088\u308b\u4f9d\u5b58\u95a2\u4fc2\u78ba\u8a8d<\/h3>\n<pre><code class=\"language-bash\"># \u7279\u5b9a\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4f9d\u5b58\u95a2\u4fc2\npip show requests\n\n# \u4f9d\u5b58\u95a2\u4fc2\u306e\u8a73\u7d30\u8868\u793a\npip show --verbose requests\n\n# \u8907\u6570\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4f9d\u5b58\u95a2\u4fc2\npip show django djangorestframework\n\n# \u4f9d\u5b58\u95a2\u4fc2\u306e\u307f\u62bd\u51fa\npip show requests | grep Requires\npip show requests | grep Required-by\n<\/code><\/pre>\n<h3>pipdeptree\u3092\u4f7f\u3063\u305f\u53ef\u8996\u5316<\/h3>\n<pre><code class=\"language-bash\"># pipdeptree\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\npip install pipdeptree\n\n# \u4f9d\u5b58\u95a2\u4fc2\u30c4\u30ea\u30fc\u306e\u8868\u793a\npipdeptree\n\n# \u7279\u5b9a\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u307f\npipdeptree -p requests\n\n# JSON\u5f62\u5f0f\u3067\u51fa\u529b\npipdeptree --json\n\n# \u9006\u4f9d\u5b58\u95a2\u4fc2\u3092\u8868\u793a\npipdeptree --reverse\n\n# \u8b66\u544a\u306e\u307f\u8868\u793a\npipdeptree --warn silence\n\n# GraphViz\u5f62\u5f0f\u3067\u51fa\u529b\uff08\u56f3\u5f0f\u5316\u7528\uff09\npipdeptree --graph-output dot &gt; dependencies.dot\n<\/code><\/pre>\n<p>pipdeptree\u306e\u51fa\u529b\u4f8b\uff1a<\/p>\n<pre><code>requests==2.31.0\n\u251c\u2500\u2500 certifi [required: &gt;=2017.4.17, installed: 2023.7.22]\n\u251c\u2500\u2500 charset-normalizer [required: &gt;=2,&lt;4, installed: 3.3.2]\n\u251c\u2500\u2500 idna [required: &gt;=2.5,&lt;4, installed: 3.4]\n\u2514\u2500\u2500 urllib3 [required: &gt;=1.21.1,&lt;3, installed: 2.0.7]\n<\/code><\/pre>\n<h3>Python\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u306e\u4f9d\u5b58\u95a2\u4fc2\u5206\u6790<\/h3>\n<pre><code class=\"language-python\">import pkg_resources\nfrom collections import defaultdict, deque\n\nclass DependencyAnalyzer:\n    \"\"\"\u30d1\u30c3\u30b1\u30fc\u30b8\u4f9d\u5b58\u95a2\u4fc2\u306e\u5206\u6790\u30c4\u30fc\u30eb\"\"\"\n    \n    def __init__(self):\n        self.packages = {pkg.project_name: pkg for pkg in pkg_resources.working_set}\n    \n    def get_dependencies(self, package_name):\n        \"\"\"\u7279\u5b9a\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u76f4\u63a5\u7684\u306a\u4f9d\u5b58\u95a2\u4fc2\u3092\u53d6\u5f97\"\"\"\n        if package_name not in self.packages:\n            return []\n        \n        package = self.packages[package_name]\n        dependencies = []\n        \n        for requirement in package.requires():\n            dependencies.append({\n                'name': requirement.project_name,\n                'specs': requirement.specs,\n                'installed_version': self.packages.get(requirement.project_name, {}).version if requirement.project_name in self.packages else None\n            })\n        \n        return dependencies\n    \n    def get_reverse_dependencies(self, package_name):\n        \"\"\"\u7279\u5b9a\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306b\u4f9d\u5b58\u3057\u3066\u3044\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u53d6\u5f97\"\"\"\n        reverse_deps = []\n        \n        for pkg_name, package in self.packages.items():\n            for requirement in package.requires():\n                if requirement.project_name == package_name:\n                    reverse_deps.append({\n                        'name': pkg_name,\n                        'version': package.version\n                    })\n        \n        return reverse_deps\n    \n    def get_dependency_tree(self, package_name, max_depth=3):\n        \"\"\"\u4f9d\u5b58\u95a2\u4fc2\u30c4\u30ea\u30fc\u3092\u53d6\u5f97\"\"\"\n        def build_tree(pkg_name, depth=0, visited=None):\n            if visited is None:\n                visited = set()\n            \n            if depth &gt; max_depth or pkg_name in visited:\n                return {'name': pkg_name, 'children': [], 'circular': pkg_name in visited}\n            \n            visited.add(pkg_name)\n            dependencies = self.get_dependencies(pkg_name)\n            children = []\n            \n            for dep in dependencies:\n                child_tree = build_tree(dep['name'], depth + 1, visited.copy())\n                child_tree['specs'] = dep['specs']\n                child_tree['installed_version'] = dep['installed_version']\n                children.append(child_tree)\n            \n            visited.remove(pkg_name)\n            return {'name': pkg_name, 'children': children, 'circular': False}\n        \n        return build_tree(package_name)\n    \n    def find_circular_dependencies(self):\n        \"\"\"\u5faa\u74b0\u4f9d\u5b58\u3092\u691c\u51fa\"\"\"\n        def has_circular_dependency(pkg_name, path=None):\n            if path is None:\n                path = []\n            \n            if pkg_name in path:\n                return path + [pkg_name]\n            \n            new_path = path + [pkg_name]\n            dependencies = self.get_dependencies(pkg_name)\n            \n            for dep in dependencies:\n                result = has_circular_dependency(dep['name'], new_path)\n                if result:\n                    return result\n            \n            return None\n        \n        circular_deps = []\n        checked = set()\n        \n        for pkg_name in self.packages:\n            if pkg_name not in checked:\n                result = has_circular_dependency(pkg_name)\n                if result:\n                    circular_deps.append(result)\n                    checked.update(result)\n        \n        return circular_deps\n    \n    def get_top_level_packages(self):\n        \"\"\"\u30c8\u30c3\u30d7\u30ec\u30d9\u30eb\u30d1\u30c3\u30b1\u30fc\u30b8\uff08\u4ed6\u306b\u4f9d\u5b58\u3055\u308c\u3066\u3044\u306a\u3044\uff09\u3092\u53d6\u5f97\"\"\"\n        all_packages = set(self.packages.keys())\n        dependencies = set()\n        \n        for package in self.packages.values():\n            for req in package.requires():\n                dependencies.add(req.project_name)\n        \n        top_level = all_packages - dependencies\n        return sorted(list(top_level))\n    \n    def print_dependency_tree(self, package_name, max_depth=3):\n        \"\"\"\u4f9d\u5b58\u95a2\u4fc2\u30c4\u30ea\u30fc\u3092\u898b\u3084\u3059\u304f\u51fa\u529b\"\"\"\n        tree = self.get_dependency_tree(package_name, max_depth)\n        \n        def print_node(node, indent=0, prefix=\"\"):\n            name = node['name']\n            specs = node.get('specs', [])\n            installed = node.get('installed_version', '')\n            circular = node.get('circular', False)\n            \n            specs_str = f\" ({','.join([''.join(spec) for spec in specs])})\" if specs else \"\"\n            installed_str = f\" [installed: {installed}]\" if installed else \"\"\n            circular_str = \" [CIRCULAR]\" if circular else \"\"\n            \n            print(f\"{'  ' * indent}{prefix}{name}{specs_str}{installed_str}{circular_str}\")\n            \n            children = node.get('children', [])\n            for i, child in enumerate(children):\n                is_last = i == len(children) - 1\n                child_prefix = \"\u2514\u2500\u2500 \" if is_last else \"\u251c\u2500\u2500 \"\n                print_node(child, indent + 1, child_prefix)\n        \n        print_node(tree)\n\n# \u4f7f\u7528\u4f8b\nanalyzer = DependencyAnalyzer()\n\n# Django \u306e\u4f9d\u5b58\u95a2\u4fc2\u30c4\u30ea\u30fc\nprint(\"=== Django Dependency Tree ===\")\nif 'Django' in analyzer.packages:\n    analyzer.print_dependency_tree('Django')\nelse:\n    print(\"Django is not installed\")\n\nprint(\"\\n=== Top Level Packages ===\")\ntop_level = analyzer.get_top_level_packages()\nfor package in top_level[:10]:  # \u6700\u521d\u306e10\u500b\u306e\u307f\n    print(f\"  {package}\")\n\nprint(f\"\\nTotal top-level packages: {len(top_level)}\")\n\n# \u5faa\u74b0\u4f9d\u5b58\u306e\u691c\u51fa\nprint(\"\\n=== Circular Dependencies ===\")\ncircular = analyzer.find_circular_dependencies()\nif circular:\n    for cycle in circular:\n        print(f\"  {' -&gt; '.join(cycle)}\")\nelse:\n    print(\"  No circular dependencies found\")\n<\/code><\/pre>\n<h3>\u8a73\u7d30\u306a\u4f9d\u5b58\u95a2\u4fc2\u30ec\u30dd\u30fc\u30c8<\/h3>\n<pre><code class=\"language-python\">import pkg_resources\nfrom collections import defaultdict\nimport json\n\nclass DetailedDependencyReporter:\n    \"\"\"\u8a73\u7d30\u306a\u4f9d\u5b58\u95a2\u4fc2\u30ec\u30dd\u30fc\u30c8\u3092\u751f\u6210\"\"\"\n    \n    def __init__(self):\n        self.packages = {pkg.project_name: pkg for pkg in pkg_resources.working_set}\n    \n    def generate_full_report(self):\n        \"\"\"\u5b8c\u5168\u306a\u4f9d\u5b58\u95a2\u4fc2\u30ec\u30dd\u30fc\u30c8\u3092\u751f\u6210\"\"\"\n        report = {\n            'summary': self._get_summary(),\n            'packages': self._get_package_details(),\n            'dependency_graph': self._get_dependency_graph(),\n            'orphaned_packages': self._get_orphaned_packages(),\n            'most_depended_on': self._get_most_depended_on(),\n            'license_distribution': self._get_license_distribution()\n        }\n        return report\n    \n    def _get_summary(self):\n        \"\"\"\u30b5\u30de\u30ea\u30fc\u60c5\u5831\u3092\u53d6\u5f97\"\"\"\n        total_packages = len(self.packages)\n        packages_with_deps = sum(1 for pkg in self.packages.values() if len(list(pkg.requires())) &gt; 0)\n        total_dependencies = sum(len(list(pkg.requires())) for pkg in self.packages.values())\n        \n        return {\n            'total_packages': total_packages,\n            'packages_with_dependencies': packages_with_deps,\n            'total_dependency_relationships': total_dependencies,\n            'average_dependencies_per_package': round(total_dependencies \/ total_packages, 2) if total_packages &gt; 0 else 0\n        }\n    \n    def _get_package_details(self):\n        \"\"\"\u5404\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u8a73\u7d30\u60c5\u5831\u3092\u53d6\u5f97\"\"\"\n        details = {}\n        \n        for pkg_name, pkg in self.packages.items():\n            dependencies = []\n            for req in pkg.requires():\n                dependencies.append({\n                    'name': req.project_name,\n                    'specs': req.specs,\n                    'installed': req.project_name in self.packages,\n                    'installed_version': self.packages[req.project_name].version if req.project_name in self.packages else None\n                })\n            \n            # \u3053\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306b\u4f9d\u5b58\u3057\u3066\u3044\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u53d6\u5f97\n            dependents = []\n            for other_name, other_pkg in self.packages.items():\n                for req in other_pkg.requires():\n                    if req.project_name == pkg_name:\n                        dependents.append(other_name)\n            \n            details[pkg_name] = {\n                'version': pkg.version,\n                'location': pkg.location,\n                'dependencies': dependencies,\n                'dependents': dependents,\n                'dependency_count': len(dependencies),\n                'dependent_count': len(dependents)\n            }\n        \n        return details\n    \n    def _get_dependency_graph(self):\n        \"\"\"\u4f9d\u5b58\u95a2\u4fc2\u30b0\u30e9\u30d5\u3092\u751f\u6210\"\"\"\n        graph = {}\n        \n        for pkg_name, pkg in self.packages.items():\n            dependencies = [req.project_name for req in pkg.requires()]\n            graph[pkg_name] = dependencies\n        \n        return graph\n    \n    def _get_orphaned_packages(self):\n        \"\"\"\u5b64\u7acb\u3057\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\uff08\u4ed6\u306b\u4f9d\u5b58\u3055\u308c\u3066\u3044\u306a\u3044\uff09\u3092\u53d6\u5f97\"\"\"\n        all_packages = set(self.packages.keys())\n        dependencies = set()\n        \n        for pkg in self.packages.values():\n            for req in pkg.requires():\n                dependencies.add(req.project_name)\n        \n        orphaned = all_packages - dependencies\n        return sorted(list(orphaned))\n    \n    def _get_most_depended_on(self, top_n=10):\n        \"\"\"\u6700\u3082\u4f9d\u5b58\u3055\u308c\u3066\u3044\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u53d6\u5f97\"\"\"\n        dependency_count = defaultdict(int)\n        \n        for pkg in self.packages.values():\n            for req in pkg.requires():\n                if req.project_name in self.packages:\n                    dependency_count[req.project_name] += 1\n        \n        sorted_deps = sorted(dependency_count.items(), key=lambda x: x[1], reverse=True)\n        return sorted_deps[:top_n]\n    \n    def _get_license_distribution(self):\n        \"\"\"\u30e9\u30a4\u30bb\u30f3\u30b9\u5206\u5e03\u3092\u53d6\u5f97\"\"\"\n        from importlib import metadata\n        \n        license_count = defaultdict(int)\n        \n        try:\n            for dist in metadata.distributions():\n                license_info = dist.metadata.get('License', 'Unknown')\n                license_count[license_info] += 1\n        except ImportError:\n            # Python &lt; 3.8 \u306e\u5834\u5408\n            license_count['Unknown'] = len(self.packages)\n        \n        return dict(license_count)\n    \n    def export_report(self, filename='dependency_report.json'):\n        \"\"\"\u30ec\u30dd\u30fc\u30c8\u3092JSON\u30d5\u30a1\u30a4\u30eb\u306b\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\"\"\"\n        report = self.generate_full_report()\n        \n        with open(filename, 'w', encoding='utf-8') as f:\n            json.dump(report, f, indent=2, ensure_ascii=False)\n        \n        print(f\"Dependency report exported to {filename}\")\n        return report\n    \n    def print_summary(self):\n        \"\"\"\u30b5\u30de\u30ea\u30fc\u3092\u898b\u3084\u3059\u304f\u51fa\u529b\"\"\"\n        report = self.generate_full_report()\n        summary = report['summary']\n        \n        print(\"=== DEPENDENCY SUMMARY ===\")\n        print(f\"Total packages: {summary['total_packages']}\")\n        print(f\"Packages with dependencies: {summary['packages_with_dependencies']}\")\n        print(f\"Total dependency relationships: {summary['total_dependency_relationships']}\")\n        print(f\"Average dependencies per package: {summary['average_dependencies_per_package']}\")\n        \n        print(f\"\\n=== TOP 10 MOST DEPENDED ON PACKAGES ===\")\n        for package, count in report['most_depended_on']:\n            print(f\"  {package}: {count} packages depend on it\")\n        \n        print(f\"\\n=== ORPHANED PACKAGES ({len(report['orphaned_packages'])}) ===\")\n        for package in report['orphaned_packages'][:10]:\n            print(f\"  {package}\")\n        if len(report['orphaned_packages']) &gt; 10:\n            print(f\"  ... and {len(report['orphaned_packages']) - 10} more\")\n\n# \u4f7f\u7528\u4f8b\nreporter = DetailedDependencyReporter()\nreporter.print_summary()\n\n# \u8a73\u7d30\u30ec\u30dd\u30fc\u30c8\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u51fa\u529b\nreporter.export_report()\n<\/code><\/pre>\n<h2>\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/h2>\n<h3>\u3088\u304f\u3042\u308b\u554f\u984c\u3068\u89e3\u6c7a\u6cd5<\/h3>\n<h4>1. pip list\u304c\u5b9f\u884c\u3067\u304d\u306a\u3044<\/h4>\n<pre><code class=\"language-bash\"># \u30a8\u30e9\u30fc\u4f8b\npip: command not found\n\n# \u89e3\u6c7a\u6cd51: Python\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u3057\u3066\u5b9f\u884c\npython -m pip list\n\n# \u89e3\u6c7a\u6cd52: pip3\u3092\u4f7f\u7528\npip3 list\n\n# \u89e3\u6c7a\u6cd53: \u30d1\u30b9\u306e\u78ba\u8a8d\nwhich pip\necho $PATH\n\n# \u89e3\u6c7a\u6cd54: pip\u306e\u518d\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\npython -m ensurepip --upgrade\n<\/code><\/pre>\n<h4>2. \u6a29\u9650\u30a8\u30e9\u30fc<\/h4>\n<pre><code class=\"language-bash\"># \u30a8\u30e9\u30fc\u4f8b\nPermissionError: [Errno 13] Permission denied\n\n# \u89e3\u6c7a\u6cd51: \u4eee\u60f3\u74b0\u5883\u3092\u4f7f\u7528\npython -m venv venv\nsource venv\/bin\/activate\npip list\n\n# \u89e3\u6c7a\u6cd52: \u30e6\u30fc\u30b6\u30fc\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u307f\u8868\u793a\npip list --user\n\n# \u89e3\u6c7a\u6cd53: sudo\u3092\u4f7f\u7528\uff08\u63a8\u5968\u3057\u306a\u3044\uff09\nsudo pip list\n<\/code><\/pre>\n<h4>3. \u30d1\u30c3\u30b1\u30fc\u30b8\u60c5\u5831\u304c\u8868\u793a\u3055\u308c\u306a\u3044<\/h4>\n<pre><code class=\"language-bash\"># \u554f\u984c\u306e\u8a3a\u65ad\npip check  # \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u6574\u5408\u6027\u78ba\u8a8d\npip list --verbose  # \u8a73\u7d30\u60c5\u5831\u8868\u793a\n\n# \u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u30af\u30ea\u30a2\npip cache purge\n\n# pip\u306e\u66f4\u65b0\npython -m pip install --upgrade pip\n\n# \u30d1\u30c3\u30b1\u30fc\u30b8\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u4fee\u5fa9\npython -m pip install --force-reinstall --no-deps pip\n<\/code><\/pre>\n<h4>4. \u4eee\u60f3\u74b0\u5883\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u898b\u3048\u306a\u3044<\/h4>\n<pre><code class=\"language-bash\"># \u4eee\u60f3\u74b0\u5883\u306e\u78ba\u8a8d\nwhich python\nwhich pip\n\n# \u4eee\u60f3\u74b0\u5883\u306e\u6709\u52b9\u5316\u78ba\u8a8d\necho $VIRTUAL_ENV  # Linux\/macOS\necho $CONDA_DEFAULT_ENV  # conda\u74b0\u5883\n\n# \u6b63\u3057\u3044 pip \u3092\u4f7f\u7528\npython -m pip list\n\n# \u4eee\u60f3\u74b0\u5883\u306e\u518d\u4f5c\u6210\ndeactivate\nrm -rf venv\npython -m venv venv\nsource venv\/bin\/activate\n<\/code><\/pre>\n<h4>5. \u6587\u5b57\u5316\u3051\u30a8\u30e9\u30fc<\/h4>\n<pre><code class=\"language-bash\"># \u30a8\u30e9\u30fc\u4f8b\nUnicodeDecodeError: 'ascii' codec can't decode\n\n# \u89e3\u6c7a\u6cd51: \u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\nexport PYTHONIOENCODING=utf-8\npip list\n\n# \u89e3\u6c7a\u6cd52: \u30ed\u30b1\u30fc\u30eb\u3092\u8a2d\u5b9a\nexport LANG=en_US.UTF-8\nexport LC_ALL=en_US.UTF-8\npip list\n\n# \u89e3\u6c7a\u6cd53: Python\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u51e6\u7406\npython -c \"\nimport sys\nimport subprocess\nresult = subprocess.run([sys.executable, '-m', 'pip', 'list'], \n                       capture_output=True, text=True, encoding='utf-8')\nprint(result.stdout)\n\"\n<\/code><\/pre>\n<h3>\u30c7\u30d0\u30c3\u30b0\u7528\u306e\u30b9\u30af\u30ea\u30d7\u30c8<\/h3>\n<pre><code class=\"language-python\">import sys\nimport os\nimport subprocess\nimport pkg_resources\nimport platform\n\ndef diagnose_python_environment():\n    \"\"\"Python\u74b0\u5883\u306e\u8a3a\u65ad\u3092\u884c\u3046\"\"\"\n    \n    print(\"=== Python Environment Diagnosis ===\")\n    print(f\"Python version: {sys.version}\")\n    print(f\"Python executable: {sys.executable}\")\n    print(f\"Platform: {platform.platform()}\")\n    print(f\"Architecture: {platform.architecture()}\")\n    \n    print(f\"\\n=== Environment Variables ===\")\n    important_vars = [\n        'VIRTUAL_ENV', 'CONDA_DEFAULT_ENV', 'PYTHONPATH', \n        'PYTHONHOME', 'PATH', 'PYTHONIOENCODING'\n    ]\n    \n    for var in important_vars:\n        value = os.environ.get(var, 'Not set')\n        print(f\"{var}: {value}\")\n    \n    print(f\"\\n=== Python Path ===\")\n    for i, path in enumerate(sys.path):\n        print(f\"  {i}: {path}\")\n    \n    print(f\"\\n=== Package Installation Locations ===\")\n    try:\n        import site\n        print(f\"User site-packages: {site.getusersitepackages()}\")\n        site_packages = site.getsitepackages()\n        for i, site_pkg in enumerate(site_packages):\n            print(f\"Site-packages {i}: {site_pkg}\")\n    except Exception as e:\n        print(f\"Error getting site information: {e}\")\n    \n    print(f\"\\n=== pip Information ===\")\n    pip_commands = ['pip', 'pip3', f'{sys.executable} -m pip']\n    \n    for cmd in pip_commands:\n        try:\n            if cmd.startswith(sys.executable):\n                result = subprocess.run(cmd.split() + ['--version'], \n                                      capture_output=True, text=True, timeout=10)\n            else:\n                result = subprocess.run([cmd, '--version'], \n                                      capture_output=True, text=True, timeout=10)\n            \n            if result.returncode == 0:\n                print(f\"{cmd}: {result.stdout.strip()}\")\n            else:\n                print(f\"{cmd}: Error - {result.stderr.strip()}\")\n        except Exception as e:\n            print(f\"{cmd}: Not available - {e}\")\n    \n    print(f\"\\n=== Package Count ===\")\n    try:\n        packages = list(pkg_resources.working_set)\n        print(f\"Total packages (pkg_resources): {len(packages)}\")\n        \n        # \u5834\u6240\u5225\u306e\u30ab\u30a6\u30f3\u30c8\n        locations = {}\n        for package in packages:\n            location = package.location\n            locations[location] = locations.get(location, 0) + 1\n        \n        print(f\"Packages by location:\")\n        for location, count in sorted(locations.items()):\n            print(f\"  {location}: {count} packages\")\n    \n    except Exception as e:\n        print(f\"Error counting packages with pkg_resources: {e}\")\n    \n    # pip list \u30c6\u30b9\u30c8\n    print(f\"\\n=== pip list test ===\")\n    try:\n        result = subprocess.run([sys.executable, '-m', 'pip', 'list'], \n                              capture_output=True, text=True, timeout=30)\n        \n        if result.returncode == 0:\n            lines = result.stdout.strip().split('\\n')\n            print(f\"pip list output: {len(lines)} lines\")\n            print(\"First 5 lines:\")\n            for line in lines[:5]:\n                print(f\"  {line}\")\n        else:\n            print(f\"pip list failed: {result.stderr}\")\n            \n    except Exception as e:\n        print(f\"Error running pip list: {e}\")\n    \n    # importlib.metadata \u30c6\u30b9\u30c8 (Python 3.8+)\n    print(f\"\\n=== importlib.metadata test ===\")\n    try:\n        from importlib import metadata\n        distributions = list(metadata.distributions())\n        print(f\"Total packages (importlib.metadata): {len(distributions)}\")\n    except ImportError:\n        print(\"importlib.metadata not available (Python &lt; 3.8)\")\n    except Exception as e:\n        print(f\"Error with importlib.metadata: {e}\")\n\ndef fix_common_issues():\n    \"\"\"\u4e00\u822c\u7684\u306a\u554f\u984c\u306e\u81ea\u52d5\u4fee\u5fa9\u3092\u8a66\u884c\"\"\"\n    \n    print(\"=== Attempting to fix common issues ===\")\n    \n    # pip\u306e\u66f4\u65b0\n    print(\"1. Updating pip...\")\n    try:\n        result = subprocess.run([sys.executable, '-m', 'pip', 'install', '--upgrade', 'pip'], \n                              capture_output=True, text=True, timeout=60)\n        if result.returncode == 0:\n            print(\"   \u2713 pip updated successfully\")\n        else:\n            print(f\"   \u2717 pip update failed: {result.stderr}\")\n    except Exception as e:\n        print(f\"   \u2717 pip update error: {e}\")\n    \n    # setuptools \u3068 wheel \u306e\u66f4\u65b0\n    print(\"2. Updating setuptools and wheel...\")\n    try:\n        result = subprocess.run([sys.executable, '-m', 'pip', 'install', '--upgrade', 'setuptools', 'wheel'], \n                              capture_output=True, text=True, timeout=60)\n        if result.returncode == 0:\n            print(\"   \u2713 setuptools and wheel updated successfully\")\n        else:\n            print(f\"   \u2717 setuptools\/wheel update failed: {result.stderr}\")\n    except Exception as e:\n        print(f\"   \u2717 setuptools\/wheel update error: {e}\")\n    \n    # \u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u30af\u30ea\u30a2\n    print(\"3. Clearing pip cache...\")\n    try:\n        result = subprocess.run([sys.executable, '-m', 'pip', 'cache', 'purge'], \n                              capture_output=True, text=True, timeout=30)\n        if result.returncode == 0:\n            print(\"   \u2713 pip cache cleared successfully\")\n        else:\n            print(f\"   \u2717 cache clear failed: {result.stderr}\")\n    except Exception as e:\n        print(f\"   \u2717 cache clear error: {e}\")\n    \n    # \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u6574\u5408\u6027\u30c1\u30a7\u30c3\u30af\n    print(\"4. Checking package integrity...\")\n    try:\n        result = subprocess.run([sys.executable, '-m', 'pip', 'check'], \n                              capture_output=True, text=True, timeout=30)\n        if result.returncode == 0:\n            print(\"   \u2713 No package conflicts found\")\n        else:\n            print(f\"   \u26a0 Package conflicts detected:\\n{result.stdout}\")\n    except Exception as e:\n        print(f\"   \u2717 integrity check error: {e}\")\n\n# \u8a3a\u65ad\u5b9f\u884c\nif __name__ == \"__main__\":\n    diagnose_python_environment()\n    print(\"\\n\" + \"=\"*60 + \"\\n\")\n    fix_common_issues()\n<\/code><\/pre>\n<h3>\u74b0\u5883\u306e\u5b8c\u5168\u30ea\u30bb\u30c3\u30c8<\/h3>\n<pre><code class=\"language-bash\"># \u4eee\u60f3\u74b0\u5883\u306e\u5b8c\u5168\u30ea\u30bb\u30c3\u30c8\ndeactivate  # \u4eee\u60f3\u74b0\u5883\u3092\u7121\u52b9\u5316\nrm -rf venv  # \u4eee\u60f3\u74b0\u5883\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u524a\u9664\npython -m venv venv  # \u65b0\u3057\u3044\u4eee\u60f3\u74b0\u5883\u3092\u4f5c\u6210\nsource venv\/bin\/activate  # \u6709\u52b9\u5316\n\n# pip\u306e\u6700\u65b0\u5316\npython -m pip install --upgrade pip\n\n# requirements.txt\u304b\u3089\u518d\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\npip install -r requirements.txt\n\n# \u307e\u305f\u306f\u6bb5\u968e\u7684\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\npip install --upgrade pip setuptools wheel\npip install -r requirements.txt --no-cache-dir\n<\/code><\/pre>\n<h3>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316<\/h3>\n<pre><code class=\"language-python\">import time\nimport subprocess\nimport json\n\ndef benchmark_package_listing_methods():\n    \"\"\"\u30d1\u30c3\u30b1\u30fc\u30b8\u4e00\u89a7\u53d6\u5f97\u30e1\u30bd\u30c3\u30c9\u306e\u30d9\u30f3\u30c1\u30de\u30fc\u30af\"\"\"\n    \n    methods = {\n        'pip_list_json': lambda: subprocess.run(\n            ['pip', 'list', '--format=json'], \n            capture_output=True, text=True\n        ),\n        'pip_freeze': lambda: subprocess.run(\n            ['pip', 'freeze'], \n            capture_output=True, text=True\n        ),\n        'pkg_resources': lambda: list(pkg_resources.working_set),\n    }\n    \n    # Python 3.8+ \u306e\u307f\n    try:\n        from importlib import metadata\n        methods['importlib_metadata'] = lambda: list(metadata.distributions())\n    except ImportError:\n        pass\n    \n    results = {}\n    \n    for method_name, method_func in methods.items():\n        print(f\"Testing {method_name}...\")\n        \n        times = []\n        for i in range(3):  # 3\u56de\u5b9f\u884c\u3057\u3066\u5e73\u5747\u3092\u53d6\u308b\n            start_time = time.time()\n            try:\n                result = method_func()\n                end_time = time.time()\n                times.append(end_time - start_time)\n            except Exception as e:\n                print(f\"  Error in {method_name}: {e}\")\n                times.append(float('inf'))\n        \n        avg_time = sum(times) \/ len(times)\n        results[method_name] = {\n            'average_time': avg_time,\n            'times': times\n        }\n        \n        print(f\"  Average time: {avg_time:.4f} seconds\")\n    \n    # \u7d50\u679c\u306e\u30bd\u30fc\u30c8\n    sorted_results = sorted(results.items(), key=lambda x: x[1]['average_time'])\n    \n    print(f\"\\n=== Performance Ranking ===\")\n    for i, (method, data) in enumerate(sorted_results, 1):\n        print(f\"{i}. {method}: {data['average_time']:.4f} seconds\")\n    \n    return results\n\n# \u30d9\u30f3\u30c1\u30de\u30fc\u30af\u5b9f\u884c\nif __name__ == \"__main__\":\n    benchmark_results = benchmark_package_listing_methods()\n<\/code><\/pre>\n<h2>\u307e\u3068\u3081<\/h2>\n<p>Python\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4e00\u89a7\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5\u306f\u591a\u5c90\u306b\u308f\u305f\u308a\u307e\u3059\u3002\u7528\u9014\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h3>\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8<\/h3>\n<p><strong>\u57fa\u672c\u30b3\u30de\u30f3\u30c9\u306e\u4f7f\u3044\u5206\u3051:<\/strong><\/p>\n<ul>\n<li><code>pip list<\/code>: \u4eba\u9593\u304c\u8aad\u307f\u3084\u3059\u3044\u8868\u5f62\u5f0f\u3067\u306e\u78ba\u8a8d<\/li>\n<li><code>pip freeze<\/code>: requirements.txt\u751f\u6210\u3084\u30b9\u30af\u30ea\u30d7\u30c8\u51e6\u7406<\/li>\n<li><code>pip show<\/code>: \u500b\u5225\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u8a73\u7d30\u60c5\u5831\u78ba\u8a8d<\/li>\n<\/ul>\n<p><strong>\u4eee\u60f3\u74b0\u5883\u3067\u306e\u7ba1\u7406:<\/strong><\/p>\n<ul>\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3054\u3068\u306e\u72ec\u7acb\u3057\u305f\u74b0\u5883\u3067\u306e\u7ba1\u7406<\/li>\n<li>\u74b0\u5883\u9593\u306e\u6bd4\u8f03\u3068\u540c\u671f<\/li>\n<li>\u672c\u756a\u74b0\u5883\u3078\u306e\u5b89\u5168\u306a\u30c7\u30d7\u30ed\u30a4<\/li>\n<\/ul>\n<p><strong>\u81ea\u52d5\u5316\u3068\u30b9\u30af\u30ea\u30d7\u30c8\u51e6\u7406:<\/strong><\/p>\n<ul>\n<li>Python\u30b9\u30af\u30ea\u30d7\u30c8\u306b\u3088\u308b\u9ad8\u5ea6\u306a\u5206\u6790\u3068\u51e6\u7406<\/li>\n<li>\u4f9d\u5b58\u95a2\u4fc2\u306e\u53ef\u8996\u5316\u3068\u7ba1\u7406<\/li>\n<li>\u30ab\u30b9\u30bf\u30e0\u30ec\u30dd\u30fc\u30c8\u306e\u751f\u6210<\/li>\n<\/ul>\n<p><strong>\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0:<\/strong><\/p>\n<ul>\n<li>\u554f\u984c\u767a\u751f\u6642\u306e\u8a3a\u65ad\u3068\u89e3\u6c7a\u65b9\u6cd5<\/li>\n<li>\u74b0\u5883\u306e\u4fee\u5fa9\u3068\u6700\u9069\u5316<\/li>\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u6539\u5584<\/li>\n<\/ul>\n<h3>\u5b9f\u8df5\u7684\u306a\u6d3b\u7528\u6cd5<\/h3>\n<ol>\n<li><strong>\u65e5\u5e38\u7684\u306a\u78ba\u8a8d<\/strong>: <code>pip list<\/code> \u3067\u30af\u30a4\u30c3\u30af\u30c1\u30a7\u30c3\u30af<\/li>\n<li><strong>\u74b0\u5883\u306e\u8a18\u9332<\/strong>: <code>pip freeze &gt; requirements.txt<\/code> \u3067\u4f9d\u5b58\u95a2\u4fc2\u3092\u4fdd\u5b58<\/li>\n<li><strong>\u8a73\u7d30\u8abf\u67fb<\/strong>: <code>pip show<\/code> \u3068 <code>pipdeptree<\/code> \u3067\u554f\u984c\u306e\u7279\u5b9a<\/li>\n<li><strong>\u81ea\u52d5\u5316<\/strong>: Python\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u5b9a\u671f\u7684\u306a\u74b0\u5883\u76e3\u67fb<\/li>\n<li><strong>\u30c1\u30fc\u30e0\u958b\u767a<\/strong>: \u7d71\u4e00\u3055\u308c\u305f\u74b0\u5883\u7ba1\u7406\u30d7\u30ed\u30bb\u30b9\u306e\u78ba\u7acb<\/li>\n<\/ol>\n<p>\u3053\u308c\u3089\u306e\u65b9\u6cd5\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001Python\u958b\u767a\u306b\u304a\u3051\u308b\u52b9\u7387\u7684\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002\u7279\u306b\u5927\u898f\u6a21\u306a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3084\u30c1\u30fc\u30e0\u958b\u767a\u3067\u306f\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4f9d\u5b58\u95a2\u4fc2\u3092\u9069\u5207\u306b\u628a\u63e1\u3057\u3001\u74b0\u5883\u306e\u4e00\u8cab\u6027\u3092\u4fdd\u3064\u3053\u3068\u304c\u6210\u529f\u306e\u9375\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><\/p>\n\n\n\n<p><iframe loading=\"lazy\" width=\"560\" height=\"314\" src=\"\/\/www.youtube.com\/embed\/7iX9nAJE0cE\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u25a0<a href=\"https:\/\/amzn.to\/3VxGkpx\">\u300c\u3089\u304f\u3089\u304fPython\u587e\u300d\u304c\u5207\u308a\u958b\u304f\u300c\u546a\u6587\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u300d\u3068\u306f\uff1f<\/a><\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"r9IGFUJW69\"><a href=\"https:\/\/techgym.jp\/about\/rakurakupython\/\">\u3010\u9769\u547d\u7684\u5b66\u7fd2\u6cd5\u3011\u300c\u3089\u304f\u3089\u304fPython\u587e\u300d\u304c\u5207\u308a\u958b\u304f\u3001\u546a\u6587\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3068\u3044\u3046\u65b0\u6642\u4ee3\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u7fd2\u5f97\u8853<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u3010\u9769\u547d\u7684\u5b66\u7fd2\u6cd5\u3011\u300c\u3089\u304f\u3089\u304fPython\u587e\u300d\u304c\u5207\u308a\u958b\u304f\u3001\u546a\u6587\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3068\u3044\u3046\u65b0\u6642\u4ee3\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u7fd2\u5f97\u8853&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/about\/rakurakupython\/embed\/#?secret=Z5BLwDazaQ#?secret=r9IGFUJW69\" data-secret=\"r9IGFUJW69\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\u25a0\u30d7\u30ed\u30f3\u30d7\u30c8\u3060\u3051\u3067\u30aa\u30ea\u30b8\u30ca\u30eb\u30a2\u30d7\u30ea\u3092\u958b\u767a\u30fb\u516c\u958b\u3057\u3066\u307f\u305f\uff01\uff01<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"4U6ZCCxxhQ\"><a href=\"https:\/\/techgym.jp\/column\/ori-app\/\">\u30d7\u30ed\u30f3\u30d7\u30c8\u3060\u3051\u3067\u30aa\u30ea\u30b8\u30ca\u30eb\u30a2\u30d7\u30ea\u3092\u958b\u767a\u30fb\u516c\u958b\u3057\u3066\u307f\u305f\uff01\uff01<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u30d7\u30ed\u30f3\u30d7\u30c8\u3060\u3051\u3067\u30aa\u30ea\u30b8\u30ca\u30eb\u30a2\u30d7\u30ea\u3092\u958b\u767a\u30fb\u516c\u958b\u3057\u3066\u307f\u305f\uff01\uff01&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/column\/ori-app\/embed\/#?secret=IzwL5whI4I#?secret=4U6ZCCxxhQ\" data-secret=\"4U6ZCCxxhQ\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\u25a0AI\u6642\u4ee3\u306e\u7b2c\u4e00\u6b69\uff01\u300cAI\u99c6\u52d5\u958b\u767a\u30b3\u30fc\u30b9\u300d\u306f\u3058\u3081\u307e\u3057\u305f\uff01<\/p>\n\n\n\n<p>\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821\u3067\u5148\u884c\u958b\u59cb\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"I7WXfn0Fft\"><a href=\"https:\/\/techgym.jp\/about\/ai-driven-development\/\">AI\u99c6\u52d5\u958b\u767a\/\u751f\u6210AI\u30a8\u30f3\u30b8\u30cb\u30a2\u30b3\u30fc\u30b9\uff08\u521d\u5fc3\u8005\u5411\u3051\uff09<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;AI\u99c6\u52d5\u958b\u767a\/\u751f\u6210AI\u30a8\u30f3\u30b8\u30cb\u30a2\u30b3\u30fc\u30b9\uff08\u521d\u5fc3\u8005\u5411\u3051\uff09&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/about\/ai-driven-development\/embed\/#?secret=PusozlooFU#?secret=I7WXfn0Fft\" data-secret=\"I7WXfn0Fft\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\u25a0\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821<\/p>\n\n\n\n<p>\u300c\u6b66\u7530\u587e\u300d\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u7248\u3068\u3044\u3048\u3070\u300c\u30c6\u30c3\u30af\u30b8\u30e0\u300d\u3002<br>\u8b1b\u7fa9\u52d5\u753b\u306a\u3057\u3001\u6559\u79d1\u66f8\u306a\u3057\u3002\u300c\u9032\u6357\u7ba1\u7406\u3068\u30b3\u30fc\u30c1\u30f3\u30b0\u300d\u3067\u52b9\u7387\u5b66\u7fd2\u3002<br>\u3088\u308a\u65e9\u304f\u3001\u3088\u308a\u5b89\u304f\u3001\u3057\u304b\u3082\u5bfe\u9762\u578b\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"matFHkmRb0\"><a href=\"https:\/\/techgym.jp\/tokyo\/tokyo_honko\/\">\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u30c6\u30c3\u30af\u30b8\u30e0\u6771\u4eac\u672c\u6821&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/tokyo\/tokyo_honko\/embed\/#?secret=9G2apTkfIl#?secret=matFHkmRb0\" data-secret=\"matFHkmRb0\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\uff1c\u77ed\u671f\u8b1b\u7fd2\uff1e5\u65e5\u30675\u4e07\u5186\u306e\u300cPython\u30df\u30cb\u30ad\u30e3\u30f3\u30d7\u300d\u958b\u50ac\u4e2d\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"jgKmUJp3Hr\"><a href=\"https:\/\/techgym.jp\/event\/nagatacho_camp\/\">\u3010\u6700\u901f\u30fb\u78ba\u5b9f\u3011\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u653b\u7565\u300c\u6c38\u7530\u753aPython\u30df\u30cb\u30ad\u30e3\u30f3\u30d7\u300d\u30105\u65e5\u9593\u30675\u4e07\u5186\u3011<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u3010\u6700\u901f\u30fb\u78ba\u5b9f\u3011\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u653b\u7565\u300c\u6c38\u7530\u753aPython\u30df\u30cb\u30ad\u30e3\u30f3\u30d7\u300d\u30105\u65e5\u9593\u30675\u4e07\u5186\u3011&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/event\/nagatacho_camp\/embed\/#?secret=TNQVbRH6n7#?secret=jgKmUJp3Hr\" data-secret=\"jgKmUJp3Hr\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\uff1c\u67081\u958b\u50ac\uff1e\u653e\u9001\u4f5c\u5bb6\u306b\u3088\u308b\u6620\u50cf\u30c7\u30a3\u30ec\u30af\u30bf\u30fc\u990a\u6210\u8b1b\u5ea7<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"3KQXfzv2C2\"><a href=\"https:\/\/techgym.jp\/event\/video_director\/\">\u73fe\u5f79\u653e\u9001\u4f5c\u5bb6\u304c\u6559\u3048\u308b\u52d5\u753b\u8b1b\u5ea7\uff01\u300e\uff24\uff2f\uff27\uff21\u300f<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u73fe\u5f79\u653e\u9001\u4f5c\u5bb6\u304c\u6559\u3048\u308b\u52d5\u753b\u8b1b\u5ea7\uff01\u300e\uff24\uff2f\uff27\uff21\u300f&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/event\/video_director\/embed\/#?secret=16ln5VQ7Xd#?secret=3KQXfzv2C2\" data-secret=\"3KQXfzv2C2\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\uff1c\u30aa\u30f3\u30e9\u30a4\u30f3\u7121\u6599\uff1e\u30bc\u30ed\u304b\u3089\u59cb\u3081\u308bPython\u7206\u901f\u8b1b\u5ea7<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"J7x6RyhjEt\"><a href=\"https:\/\/techgym.jp\/tokyo_python\/\">\u3010\u7121\u6599\u30fb\u30aa\u30f3\u30e9\u30a4\u30f3\u3011\u30bc\u30ed\u304b\u3089\u306f\u3058\u3081\u308bPython\u7206\u901f\u8b1b\u5ea7<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;\u3010\u7121\u6599\u30fb\u30aa\u30f3\u30e9\u30a4\u30f3\u3011\u30bc\u30ed\u304b\u3089\u306f\u3058\u3081\u308bPython\u7206\u901f\u8b1b\u5ea7&#8221; &#8212; \u3010\u30c6\u30c3\u30af\u30b8\u30e0\u3011\u683c\u5b89\u30fb\u5bfe\u9762\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30af\u30fc\u30eb\" src=\"https:\/\/techgym.jp\/tokyo_python\/embed\/#?secret=mHQLVhPVIi#?secret=J7x6RyhjEt\" data-secret=\"J7x6RyhjEt\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><style>\n.ranking-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n}\n.ranking-table td {\n    padding: 20px;\n    border: 1px solid #e0e0e0;\n    vertical-align: top;\n}\n.ranking-table td:first-child {\n    width: 200px;\n    text-align: center;\n    background-color: #f9f9f9;\n}\n.ranking-table img {\n    display: block;\n    margin: 10px auto;\n    max-width: 100%;\n    height: auto;\n}\n.ranking-table a {\n    color: #0066cc;\n    text-decoration: none;\n    font-weight: bold;\n}\n.ranking-table a:hover {\n    text-decoration: underline;\n}\n<\/style><\/p>\n<table class=\"ranking-table\">\n<tbody>\n<tr>\n<td><a href=\"\/\/af.moshimo.com\/af\/c\/click?a_id=5161740&amp;p_id=6820&amp;pc_id=19517&amp;pl_id=90728\" rel=\"nofollow\" referrerpolicy=\"no-referrer-when-downgrade\" attributionsrc=\"\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/image.moshimo.com\/af-img\/6634\/000000090728.png?resize=120%2C60\" width=\"120\" height=\"60\" style=\"border: none;\" \/><\/a><img decoding=\"async\" src=\"\/\/i.moshimo.com\/af\/i\/impression?a_id=5161740&amp;p_id=6820&amp;pc_id=19517&amp;pl_id=90728\" width=\"1\" height=\"1\" style=\"border: none;\" loading=\"lazy\" \/><strong><a href=\"http:\/\/msm.to\/2ULVG5u\" target=\"_blank\" rel=\"noopener\">\u30d5\u30ea\u30fc\u30e9\u30f3\u30b9\u30dc\u30fc\u30c9<\/a><\/strong><\/td>\n<td>\n<p><strong>20\u4e07\u4ef6\u4ee5\u4e0a\u306e\u6848\u4ef6\u304b\u3089\u3001\u526f\u696d\u306b\u6700\u9069\u306a\u30ea\u30e2\u30fc\u30c8\u30fb\u90313\u301c\u306e\u6848\u4ef6\u3092\u4e00\u62ec\u691c\u7d22\u3067\u304d\u308b\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3002<\/strong><strong>\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u767b\u9332\u3067AI\u30b9\u30ab\u30a6\u30c8\u304c\u81ea\u52d5\u7684\u306b\u30de\u30c3\u30c1\u30f3\u30b0\u6848\u4ef6\u3092\u63d0\u6848\u3002<\/strong><strong>\u5e02\u5834\u7d71\u8a08\u3084\u5358\u4fa1\u76f8\u5834\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u53e3\u30b3\u30df\u3082\u7121\u6599\u3067\u95b2\u89a7\u53ef\u80fd\u306a\u305f\u3081\u3001\u672c\u696d\u3092\u7d9a\u3051\u306a\u304c\u3089\u52b9\u7387\u7684\u306b\u9ad8\u5358\u4fa1\u306e\u526f\u696d\u6848\u4ef6\u3092\u63a2\u305b\u307e\u3059\u3002<a href=\"http:\/\/msm.to\/2ULVG5u\" target=\"_blank\" rel=\"noopener\">\u30d5\u30ea\u30fc\u30e9\u30f3\u30b9\u30dc\u30fc\u30c9<\/a><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45E9XQ+679KMQ+40EC+61C2P\" rel=\"nofollow\"> <img loading=\"lazy\" decoding=\"async\" border=\"0\" width=\"120\" height=\"60\" alt=\"\" src=\"https:\/\/www29.a8.net\/svt\/bgt?aid=250928846375&amp;wid=001&amp;eno=01&amp;mid=s00000018714001014000&amp;mc=1\" \/><\/a> <img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" border=\"0\" width=\"1\" height=\"1\" src=\"https:\/\/i0.wp.com\/www14.a8.net\/0.gif?resize=1%2C1&#038;ssl=1\" alt=\"\" \/> <strong><a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45E9XQ+679KMQ+40EC+5YJRM\" target=\"_blank\" rel=\"noopener\">IT\u30d7\u30ed\u30d1\u30fc\u30c8\u30ca\u30fc\u30ba<\/a><\/strong><\/td>\n<td>\n<p><strong>\u90312\u301c3\u65e5\u304b\u3089\u50cd\u3051\u308b\u67d4\u8edf\u306a\u6848\u4ef6\u304c\u696d\u754c\u30c8\u30c3\u30d7\u30af\u30e9\u30b9\u306e\u8c4a\u5bcc\u3055\u3092\u8a87\u308b\u30d5\u30ea\u30fc\u30e9\u30f3\u30b9\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3002<\/strong><strong>\u30a8\u30f3\u30c9\u76f4\u5951\u7d04\u306e\u305f\u3081\u9ad8\u5358\u4fa1\u3067\u3001\u90313\u65e5\u7a3c\u50cd\u3067\u3082\u5341\u5206\u306a\u5831\u916c\u3092\u5f97\u3089\u308c\u307e\u3059\u3002\u30ea\u30e2\u30fc\u30c8\u3084\u6642\u9593\u30d5\u30ec\u30ad\u30b7\u30d6\u30eb\u306a\u6848\u4ef6\u3082\u591a\u6570\u3002\u30b9\u30bf\u30fc\u30c8\u30a2\u30c3\u30d7\u30fb\u30d9\u30f3\u30c1\u30e3\u30fc\u4e2d\u5fc3\u3067\u3001\u30c8\u30ec\u30f3\u30c9\u6280\u8853\u3092\u4f7f\u3063\u305f\u9b45\u529b\u7684\u306a\u6848\u4ef6\u304c\u63c3\u3063\u3066\u3044\u307e\u3059\u3002\u5c02\u5c5e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u6848\u4ef6\u7d39\u4ecb\u304b\u3089\u5951\u7d04\u4ea4\u6e09\u307e\u3067\u30b5\u30dd\u30fc\u30c8\u3002\u5229\u7528\u4f01\u696d2,000\u793e\u4ee5\u4e0a\u306e\u5b9f\u7e3e\u3002<a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45E9XQ+679KMQ+40EC+5YJRM\" target=\"_blank\" rel=\"noopener\">IT\u30d7\u30ed\u30d1\u30fc\u30c8\u30ca\u30fc\u30ba<\/a><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45G89H+AOM1KI+3TVC+BYLJL\" rel=\"nofollow\"> <img loading=\"lazy\" decoding=\"async\" border=\"0\" width=\"100\" height=\"60\" alt=\"\" src=\"https:\/\/www21.a8.net\/svt\/bgt?aid=251019989646&amp;wid=001&amp;eno=01&amp;mid=s00000017868002009000&amp;mc=1\" \/><\/a> <img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" border=\"0\" width=\"1\" height=\"1\" src=\"https:\/\/i0.wp.com\/www16.a8.net\/0.gif?resize=1%2C1&#038;ssl=1\" alt=\"\" \/> <strong> <a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45G89H+AOM1KI+3TVC+BWVTE\" target=\"_blank\" rel=\"noopener\">Midworks<\/a> <\/strong><\/td>\n<td><strong>10,000\u4ef6\u4ee5\u4e0a\u306e\u6848\u4ef6\u3092\u4fdd\u6709\u3057\u3001\u90313\u65e5\u301c\u30fb\u30d5\u30eb\u30ea\u30e2\u30fc\u30c8\u306a\u3069\u67d4\u8edf\u306a\u50cd\u304d\u65b9\u306b\u5bfe\u5fdc\u3002\u9ad8\u5358\u4fa1\u6848\u4ef6\u304c\u8c4a\u5bcc\u3067\u3001\u5831\u916c\u4fdd\u969c\u5236\u5ea6\uff0860%\uff09\u3084\u4fdd\u967a\u6599\u8ca0\u62c5\uff0850%\uff09\u306a\u3069\u6b63\u793e\u54e1\u4e26\u307f\u306e\u624b\u539a\u3044\u798f\u5229\u539a\u751f\u304c\u7279\u5fb4\u3002\u901a\u52e4\u4ea4\u901a\u8cbb\uff08\u67083\u4e07\u5186\uff09\u3001\u30b9\u30ad\u30eb\u30a2\u30c3\u30d7\u8cbb\u7528\uff08\u67081\u4e07\u5186\uff09\u306e\u652f\u7d66\u306b\u52a0\u3048\u3001\u30ea\u30ed\u30af\u30e9\u30d6\u30fbfreee\u304c\u7121\u6599\u5229\u7528\u53ef\u80fd\u3002\u975e\u516c\u958b\u6848\u4ef680%\u4ee5\u4e0a\u3001\u652f\u6255\u3044\u30b5\u30a4\u30c820\u65e5\u3067\u5b89\u5fc3\u3057\u3066\u7a3c\u50cd\u3067\u304d\u307e\u3059\u3002<a href=\"https:\/\/px.a8.net\/svt\/ejp?a8mat=45G89H+AOM1KI+3TVC+BWVTE\" target=\"_blank\" rel=\"noopener\">Midworks<\/a><\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>\u30d5\u30ea\u30fc\u30e9\u30f3\u30b9\u30dc\u30fc\u30c9 20\u4e07\u4ef6\u4ee5\u4e0a\u306e\u6848\u4ef6\u304b\u3089\u3001\u526f\u696d\u306b\u6700\u9069\u306a\u30ea\u30e2\u30fc\u30c8\u30fb\u90313\u301c\u306e\u6848\u4ef6\u3092\u4e00\u62ec\u691c\u7d22\u3067\u304d\u308b\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3002\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u767b\u9332\u3067AI\u30b9\u30ab\u30a6\u30c8\u304c\u81ea\u52d5\u7684\u306b\u30de\u30c3\u30c1\u30f3\u30b0\u6848\u4ef6\u3092\u63d0\u6848\u3002\u5e02\u5834\u7d71\u8a08\u3084\u5358\u4fa1\u76f8\u5834\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u53e3\u30b3\u30df\u3082\u7121\u6599 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":42501,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-43733","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-column"],"views":103,"jetpack_featured_media_url":"\/wp-content\/uploads\/2025\/07\/f3403acf5c65aedec0dba821c4c26404.png","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/posts\/43733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/comments?post=43733"}],"version-history":[{"count":0,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/posts\/43733\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/media\/42501"}],"wp:attachment":[{"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/media?parent=43733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/categories?post=43733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techgym.jp\/wp-json\/wp\/v2\/tags?post=43733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}