2016-06-05 3 views
2

내가 파이썬 2.7.11 : 아나콘다 2.4.0 (x86_64의)를 사용하고플라스크 uWSGI - ImportError를 : 없음 모듈 이름이 요청

나는 uWSGI를 배우려고 노력하고 있습니다. 나는 PythonuWSGI 응용 프로그램은이 튜토리얼에서 시작했다 "안녕하세요"를 얻을 수 있어요 :

http://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html#the-first-wsgi-application 지금 나는 "안녕하세요"Flask 응용 프로그램을 만들고 싶어. 내가 실행하면 : 나는 pip install -U Werkzeug을 시도했지만 문제가 해결되지 않았다

File "/Users/JohnsMacBook/anaconda/lib/python2.7/site-packages/werkzeug/http.py", line 28, in <module> 
    from urllib.request import parse_http_list as _parse_list_header 
ImportError: No module named request 

:

uwsgi --socket 127.0.0.1:3031 --wsgi-file app.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191 

을 나는이 오류가 발생합니다. Werkzeug 문서 말 :.

"WERKZEUG은 우리가 강하게에 추천하지만 당신이 WERKZEUG의 이전 버전을 다운로드 할 수 있습니다 이전 버전을 지원해야하는 경우 파이썬 2.6이 제대로 작동하려면 적어도 필요 WERKZEUG 현재 실험적인 지원을하고있다. 파이썬 3 용. "

파이썬 2.7.11을 사용하고, 그래서 werkzeugurllib.request 대신 urllib2을 사용하려고하는 이유는 확실하지 않다.

*** Starting uWSGI 2.0.13.1 (64bit) on [Sun Jun 5 17:31:43 2016] *** 
compiled with version: 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31) on 05 June 2016 16:36:34 
os: Darwin-15.3.0 Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 
nodename: Johns-MacBook-Pro.local 
machine: x86_64 
clock source: unix 
detected number of CPU cores: 8 
current working directory: /Users/JohnsMacBook/Dropbox/DEV/PyDev/flask-nginx 
detected binary path: /Users/JohnsMacBook/anaconda/bin/uwsgi 
!!! no internal routing support, rebuild with pcre support !!! 
your processes number limit is 709 
your memory page size is 4096 bytes 
detected max file descriptor number: 256 
lock engine: OSX spinlocks 
thunder lock: disabled (you can enable it with --thunder-lock) 
uwsgi socket 0 bound to TCP address 127.0.0.1:3031 fd 3 
Python version: 2.7.10 (default, Oct 23 2015, 18:05:06) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] 
Python main interpreter initialized at 0x7f8531c09740 
python threads support enabled 
your server socket listen backlog is limited to 100 connections 
your mercy for graceful operations on workers is 60 seconds 
mapped 415200 bytes (405 KB) for 8 cores 
*** Operational MODE: preforking+threaded *** 
Traceback (most recent call last): 
    File "app.py", line 1, in <module> 
    from flask import Flask 
    File "/Users/JohnsMacBook/anaconda/lib/python2.7/site-packages/flask/__init__.py", line 17, in <module> 
    from werkzeug.exceptions import abort 
    File "/Users/JohnsMacBook/anaconda/lib/python2.7/site-packages/werkzeug/__init__.py", line 154, in <module> 
    __import__('werkzeug.exceptions') 
    File "/Users/JohnsMacBook/anaconda/lib/python2.7/site-packages/werkzeug/exceptions.py", line 71, in <module> 
    from werkzeug.wrappers import Response 
    File "/Users/JohnsMacBook/anaconda/lib/python2.7/site-packages/werkzeug/wrappers.py", line 26, in <module> 
    from werkzeug.http import HTTP_STATUS_CODES, \ 
    File "/Users/JohnsMacBook/anaconda/lib/python2.7/site-packages/werkzeug/http.py", line 28, in <module> 
    from urllib.request import parse_http_list as _parse_list_header 
ImportError: No module named request 
unable to load app 0 (mountpoint='') (callable not found or import error) 
*** no app loaded. going in full dynamic mode *** 
*** uWSGI is running in multiple interpreter mode *** 
spawned uWSGI master process (pid: 9870) 
spawned uWSGI worker 1 (pid: 9871, cores: 2) 
spawned uWSGI worker 2 (pid: 9872, cores: 2) 
spawned uWSGI worker 3 (pid: 9873, cores: 2) 
spawned uWSGI worker 4 (pid: 9874, cores: 2) 
*** Stats server enabled on 127.0.0.1:9191 fd: 15 *** 
+0

Google에서 코드를 표시 할 수 있습니까? 입증 가능한 예를 게시 하시겠습니까? 튜토리얼을 가르쳐주기보다는. thanks – glls

+0

'pip -V'를 실행하여 사용중인 python과 pip의 버전을 확인하십시오. 나는'urllib.request'가 파이썬 3에서만 존재한다고 믿습니다. 그래서 무언가가 엉망이 된 것 같습니다. 잘못된 패키지가 있으면 pip 패키지를 제거하고 다시 설치해야 할 수도 있습니다. –

+0

당신의 추적은'Python version : 2.7.10'을 말합니다. 그러나 다른 곳에서는'python 2.7.11'라고 말합니다. 어딘가에 혼란이있는 것 같니? –

답변

2

파이썬 버전으로 엉망이 뭔가있을 것 같다


여기에 전체 스택 트레이스입니다. 이것은 werkzeug.http.py의 소스 코드입니다. 당신은 파이썬 2.X이있는 경우 첫 번째 import 작동합니다, 두 번째는 파이썬 버전이 어떤 이유로도 파이썬 2 urllib2 나 파이썬 3 urllib를 들어 파이썬 3

try: 
    from urllib2 import parse_http_list as _parse_list_header 
except ImportError: # pragma: no cover 
    from urllib.request import parse_http_list as _parse_list_header 

와 함께 작동합니다.

저는 아나콘다 파이썬에 익숙하지 않지만 어떻게 든 설치가 엉망이 될 수 있습니까?

+0

당신은 바로 거기 어딘가에 믹스해야합니다. 'python --verision'을 실행하면'Python 2.7.11 :: Anaconda 2.4.0 (x86_64)'가됩니다. 'pip -V'는 /Users/JohnsMacBook/anaconda/lib/python2.7/site-packages (python 2.7)에서 pip 8.1.1을 얻습니다. 파이썬 쉘에 들어가면'Python 2.7.11 | Anaconda 2.4.0 (x86_64) | (기본, 2015 년 12 월 6 일, 18:57:58). 2.7.10이 어디에서오고 있는지 알 수 없습니다. – jdesilvio

+0

@jdesilvio이 문제에 대한 해결책을 찾았습니까? 아나콘다 파이썬과 비슷한 문제가 발생했습니다. – DougKruger