{"id":425,"date":"2018-02-07T10:18:22","date_gmt":"2018-02-07T01:18:22","guid":{"rendered":"http:\/\/dong1lkim.oboki.net\/?p=425"},"modified":"2020-06-02T23:36:36","modified_gmt":"2020-06-02T14:36:36","slug":"install-from-source","status":"publish","type":"post","link":"https:\/\/oboki.net\/workspace\/python\/install-from-source\/","title":{"rendered":"[Python] python3 \uc124\uce58 (\uc18c\uc2a4 \ube4c\ub4dc\ud558\uae30)"},"content":{"rendered":"<h1>Python \ube4c\ub4dc\ud558\uae30<\/h1>\n<p>\ub300\ubd80\ubd84\uc758 Linux \ubc30\ud3ec\ud310\uc5d0\uc11c\ub294 python 2.x \ubc84\uc804\uc774 \uae30\ubcf8 \uc124\uce58 \ub41c\ub2e4.<\/p>\n<blockquote>\n<p>\ubc84\uc804 2,3 \uac04\uc758 \ubb38\ubc95 \ucc28\uc774\uac00 \uc81c\ubc95 \ud06c\uace0 \ud604\uc7ac \ucd5c\uc2e0 \ubc84\uc804\uc778 3.7.0 \uc5d0\uc11c \ud638\ud658\uc774 \uc81c\ub300\ub85c \uc548\ub418\ub294 \ud328\ud0a4\uc9c0\ub4e4\uc774 \uac04\ud639 \uc788\uc5b4 \uc9c1\uc811 \ube4c\ub4dc\ud558\ub294 \uac78 \uac1c\uc778\uc801\uc73c\ub85c \uc120\ud638\ud558\uace0, \uba40\ud2f0 \ub178\ub4dc \ud658\uacbd\uc778 \uacbd\uc6b0 \uc774\ub807\uac8c \ud558\ub294\uac8c \ubc84\uc804 \uad00\ub9ac\ud558\uae30\ub3c4 \uc88b\uc740 \uac83 \uac19\ub2e4.<\/p>\n<\/blockquote>\n<h2>\uc900\ube44\uc0ac\ud56d<\/h2>\n<h3>\uc758\uc874 \uc2dc\uc2a4\ud15c \ub77c\uc774\ube0c\ub7ec\ub9ac \uc124\uce58<\/h3>\n<pre><code>yum -y install gcc openssl-devel zlib-devel libffi-devel bzip2-devel sqlite-devel ncurses-devel gdbm-devel tk-devel xz-devel readline-devel<\/code><\/pre>\n<p>pip \uc73c\ub85c \ub2e4\ub978 \ud328\ud0a4\uc9c0\ub97c \ub2e4\uc6b4\ubc1b\uac70\ub098 \uae30\uc874 \uc18c\uc2a4\ucf54\ub4dc \uc2e4\ud589\ud560 \ub54c \uc544\ub798\uc640 \uac19\uc740 \uba54\uc2dc\uc9c0 \ubc1c\uc0dd\ud558\uba74 libffi-devel\ub098 bzip2-devel \uc124\uce58\uac00 \uc548 \ub41c \uac83<\/p>\n<blockquote>\n<p>ModuleNotFoundError: No module named &#8216;_ctypes&#8217;<\/p>\n<p>ModuleNotFoundError: No module named &#8216;_bz2&#8217;<\/p>\n<\/blockquote>\n<h3>openssl \uc124\uce58<\/h3>\n<p>\ucc38\uace0: <a href=\"https:\/\/oboki.net\/workspace\/system\/linux\/linux-httpd-%ec%84%a4%ec%b9%98\/\">https:\/\/oboki.net\/workspace\/system\/linux\/linux-httpd-%ec%84%a4%ec%b9%98\/<\/a><\/p>\n<h3>python source \uc900\ube44<\/h3>\n<p><a href=\"https:\/\/www.python.org\/downloads\/source\/\">https:\/\/www.python.org\/downloads\/source\/<\/a><\/p>\n<h2>\uc124\uce58\ud558\uae30<\/h2>\n<h3>configure<\/h3>\n<blockquote>\n<p>configure\uc5d0 <em>with-openssl<\/em> \uc635\uc158\uc774 \uc788\ub294 \uacbd\uc6b0<\/p>\n<\/blockquote>\n<p><code>--with-openssl<\/code> \uc635\uc158\uc744 \uc9c0\uc6d0\ud558\uae30 \ub54c\ubb38\uc5d0 \uc0ac\uc6a9\ud560 openssl \ub514\ub809\ud1a0\ub9ac\ub97c \uc635\uc158\uc73c\ub85c \uba85\uc2dc\ud558\uace0 \ubc14\ub85c Makefile \uc744 \uc0dd\uc131\ud560 \uc218 \uc788\ub2e4. <del>\ucd5c\uc2e0 \ubc84\uc804\uc5d0\ub294 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294 \uac83 \uac19\uc74c<\/del><\/p>\n<pre><code class=\"language-bash\">.\/configure --prefix=\/app\/python\/3.7.0 --with-openssl=\/app\/python\/openssl --enable-shared<\/code><\/pre>\n<blockquote>\n<p>configure\uc5d0 <em>with-openssl<\/em> \uc635\uc158\uc774 \uc5c6\ub294 \uacbd\uc6b0<\/p>\n<\/blockquote>\n<p><code>Setup.dist<\/code> \ud30c\uc77c\uc744 \uc218\uc815\ud558\uc5ec, ssl \ubaa8\ub4c8\uc744 \ub85c\ub4dc\ud574\uc8fc\uba74 \ub418\ub294\ub370, <code>SSL=\/usr\/local\/ssl<\/code> \ub77c\uc778\uc744 \uc2dc\uc2a4\ud15c\uc5d0 ssl \uc774 \uc124\uce58\ub41c \uacbd\ub85c\ub85c \ubcc0\uacbd\ud574\uc900\ub2e4.<\/p>\n<p><code>vi .\/Modules\/Setup.dist<\/code><\/p>\n<pre><code># Socket module helper for socket(2)\n#_socket socketmodule.c\n\n# Socket module helper for SSL support; you must comment out the other\n# socket line above, and possibly edit the SSL variable:\nSSL=\/usr\/local\/ssl\n_ssl _ssl.c \\\n  -DUSE_SSL -I$(SSL)\/include -I$(SSL)\/include\/openssl \\\n  -L$(SSL)\/lib -lssl -lcrypto<\/code><\/pre>\n<p>\uc218\uc815\uc774 \uc644\ub8cc\ub418\uc5c8\uc73c\uba74 \uc544\ub798 \uba85\ub839\uc73c\ub85c Makefile \uc744 \uc0dd\uc131\ud55c\ub2e4.<\/p>\n<pre><code class=\"language-bash\">.\/configure --prefix=\/app\/python\/3.6.6 --enable-shared<\/code><\/pre>\n<h3>build<\/h3>\n<p><code>make &amp;&amp; make install<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python \ube4c\ub4dc\ud558\uae30 \ub300\ubd80\ubd84\uc758 Linux \ubc30\ud3ec\ud310\uc5d0\uc11c\ub294 python 2.x \ubc84\uc804\uc774 \uae30\ubcf8 \uc124\uce58 \ub41c\ub2e4. \ubc84\uc804 2,3 \uac04\uc758 \ubb38\ubc95 \ucc28\uc774\uac00 \uc81c\ubc95 \ud06c\uace0 \ud604\uc7ac \ucd5c\uc2e0 \ubc84\uc804\uc778 3.7.0 \uc5d0\uc11c \ud638\ud658\uc774 \uc81c\ub300\ub85c \uc548\ub418\ub294 \ud328\ud0a4\uc9c0\ub4e4\uc774 \uac04\ud639 \uc788\uc5b4 \uc9c1\uc811 \ube4c\ub4dc\ud558\ub294 \uac78 \uac1c\uc778\uc801\uc73c\ub85c \uc120\ud638\ud558\uace0, \uba40\ud2f0 \ub178\ub4dc \ud658\uacbd\uc778 \uacbd\uc6b0 \uc774\ub807\uac8c \ud558\ub294\uac8c \ubc84\uc804 \uad00\ub9ac\ud558\uae30\ub3c4 \uc88b\uc740 \uac83 \uac19\ub2e4. \uc900\ube44\uc0ac\ud56d \uc758\uc874 \uc2dc\uc2a4\ud15c \ub77c\uc774\ube0c\ub7ec\ub9ac \uc124\uce58 yum -y install gcc openssl-devel [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[83,34,50],"class_list":["post-425","post","type-post","status-publish","format-standard","hentry","category-python","tag-linux","tag-python","tag-50"],"_links":{"self":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/comments?post=425"}],"version-history":[{"count":8,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/425\/revisions"}],"predecessor-version":[{"id":1290,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/425\/revisions\/1290"}],"wp:attachment":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/media?parent=425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/categories?post=425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/tags?post=425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}