{"id":488,"date":"2015-09-18T16:05:08","date_gmt":"2015-09-18T08:05:08","guid":{"rendered":"http:\/\/julyclyde.org\/?p=488"},"modified":"2015-09-18T16:05:08","modified_gmt":"2015-09-18T08:05:08","slug":"%e6%9f%90%e7%a7%8d%e6%83%85%e5%86%b5%e4%b8%8bpath%e4%b8%8d%e7%94%9f%e6%95%88%e7%9a%84%e9%97%ae%e9%a2%98","status":"publish","type":"post","link":"https:\/\/julyclyde.org\/?p=488","title":{"rendered":"\u67d0\u79cd\u60c5\u51b5\u4e0bPATH\u4e0d\u751f\u6548\u7684\u95ee\u9898"},"content":{"rendered":"<p>\u4eca\u5929\u9047\u5230\u7684\u60c5\u51b5\uff0c\u6211\u540c\u4e8b\u5728 virtualenv \u91cc\u6267\u884c gunicorn \u8fd0\u884c Django app\uff0c\u51fa\u6765\u7684 Django \u9519\u8bef\u4fe1\u606f\u5374\u662f \/usr\/local\/ \u8def\u5f84\u4e0b\u9762\u90a3\u5957 Python \u91cc\u7684\uff1a<\/p>\n<blockquote><p>2015-09-18 15:32:47 [11538] [ERROR] Error handling request<br \/>\nTraceback (most recent call last):<br \/>\nFile &#8220;\/usr\/local\/lib\/python2.7\/dist-packages\/gunicorn\/workers\/<a href=\"http:\/\/sync.py\/\" target=\"_blank\">sync.py<\/a>&#8220;, line 131, in handle_request<br \/>\nrespiter = self.wsgi(environ, resp.start_response)<br \/>\nFile &#8220;\/usr\/local\/lib\/python2.7\/dist-packages\/django\/core\/handlers\/<a href=\"http:\/\/wsgi.py\/\" target=\"_blank\">wsgi.py<\/a>&#8220;, line 236, in __call__<br \/>\nself.load_middleware()<br \/>\nFile &#8220;\/usr\/local\/lib\/python2.7\/dist-packages\/django\/core\/handlers\/<a href=\"http:\/\/base.py\/\" target=\"_blank\">base.py<\/a>&#8220;, line 57, in load_middleware<br \/>\nraise exceptions.ImproperlyConfigured(&#8216;Middleware module &#8220;%s&#8221; does not define a &#8220;%s&#8221; class&#8217; % (mw_module, mw_classname))<br \/>\nImproperlyConfigured: Middleware module &#8220;django.contrib.auth.middleware&#8221; does not define a &#8220;SessionAuthenticationMiddleware&#8221; class<\/p><\/blockquote>\n<p>\u5c1d\u8bd5 which gunicorn \u8fd4\u56de\u7ed3\u679c\u662f virtualenv \u91cc\u7684\u90a3\u4e2a gunicorn\uff1b\u5c1d\u8bd5 strace gunicorn \u6267\u884c\uff0c\u5374\u80fd\u6b63\u5e38\u6267\u884c\u3002<\/p>\n<p>\u6211\u8bd5\u4e86\u8bd5\uff0c\u628a \/usr\/local\/bin\/gunicorn \u7684x\u6743\u9650\u53d6\u6d88\uff0c\u518d\u8ba9\u540c\u4e8b\u6267\u884c\uff0c\u5c31\u8fd4\u56de Permission denied \u8bf4\u660e\u6267\u884c\u7684\u4e0d\u662f Virtualenv \u91cc\u7684 gunicorn\u3002\u6539\u8bd5 type gunicorn \u8fd4\u56de\u7ed3\u679c\uff1a<\/p>\n<blockquote><p>gunicorn is hashed (\/usr\/local\/bin\/gunicorn)<\/p><\/blockquote>\n<p>\u76ee\u524d\u5c1a\u4e0d\u6e05\u695a\u662f\u4ec0\u4e48\u539f\u56e0\u9020\u6210\u4e86\u8be5\u547d\u4ee4\u88ab bash \u7ed9 hash \u4e86\u3002source virtualenv\u7684 activate \u547d\u4ee4\u7684\u65f6\u5019 hash \u8868\u4f1a\u88ab\u6e05\u7a7a\u7684\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4eca\u5929\u9047\u5230\u7684\u60c5\u51b5\uff0c\u6211\u540c\u4e8b\u5728 virtualenv \u91cc\u6267\u884c gunicorn \u8fd0\u884c Django app\uff0c\u51fa\u6765\u7684 Django \u9519\u8bef\u4fe1\u606f\u5374\u662f \/usr\/local\/ \u8def\u5f84\u4e0b\u9762\u90a3\u5957 Python \u91cc\u7684\uff1a 2015-09-18 15:32:47 [11538] [ERROR] Error handling request Traceback (most recent call last): File &#8220;\/usr\/local\/lib\/python2.7\/dist-packages\/gunicorn\/workers\/sync.py&#8220;, line 131, in handle_request respiter = self.wsgi(environ, resp.start_response) File &#8220;\/usr\/local\/lib\/python2.7\/dist-packages\/django\/core\/handlers\/wsgi.py&#8220;, line 236, in &hellip; <a href=\"https:\/\/julyclyde.org\/?p=488\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[56,31,27],"class_list":["post-488","post","type-post","status-publish","format-standard","hentry","category-default","tag-bash","tag-bugs","tag-python"],"_links":{"self":[{"href":"https:\/\/julyclyde.org\/index.php?rest_route=\/wp\/v2\/posts\/488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/julyclyde.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/julyclyde.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/julyclyde.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/julyclyde.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=488"}],"version-history":[{"count":0,"href":"https:\/\/julyclyde.org\/index.php?rest_route=\/wp\/v2\/posts\/488\/revisions"}],"wp:attachment":[{"href":"https:\/\/julyclyde.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/julyclyde.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/julyclyde.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}