2015-09-05 2 views
39

Próbujesz zainstalować gevent przy użyciu Homebrew na najnowszej publicznej wersji beta OSX 10.11. Po uruchomieniu instalacji wyprowadza następujące błędy (przepraszam za dużej ścianie kodu, nie wiem dokładnie gdzie jest błąd)Nie można zainstalować Gevent OSX 10.11

clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I /opt/local/include -L /opt/local/lib -U__llvm__ -DLIBEV_EMBED=1 -DEV_COMMON= -DEV_CLEANUP_ENABLE=0 -DEV_EMBED_ENABLE=0 -DEV_PERIODIC_ENABLE=0 -Ibuild/temp.macosx-10.11-x86_64-2.7/libev -Ilibev -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c gevent/gevent.core.c -o build/temp.macosx-10.11-x86_64-2.7/gevent/gevent.core.o 
    clang: warning: argument unused during compilation: '-L/opt/local/lib' 
    In file included from gevent/gevent.core.c:249: 
    In file included from gevent/libev.h:2: 
    libev/ev.c:483:48: warning: '/*' within block comment [-Wcomment] 
    /*#define MIN_INTERVAL 0.00000095367431640625 /* 1/2**20, good till 2200 */ 
               ^
    libev/ev.c:1029:42: error: '_Noreturn' keyword must precede function declarator 
    ecb_inline void ecb_unreachable (void) ecb_noreturn; 
              ^~~~~~~~~~~~ 
    _Noreturn 
    libev/ev.c:832:26: note: expanded from macro 'ecb_noreturn' 
    #define ecb_noreturn _Noreturn 
         ^
    libev/ev.c:1625:31: warning: 'extern' variable has an initializer [-Wextern-initializer] 
    EV_API_DECL struct ev_loop *ev_default_loop_ptr = 0; /* needs to be initialised to make it a definition despite extern */ 
           ^
    libev/ev.c:1796:7: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (ANPENDING, pendings [pri], pendingmax [pri], w_->pending, EMPTY2); 
     ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
     int ecb_unused ocur_ = (cur);          \ 
        ^
    libev/ev.c:1807:3: warning: unused variable 'ocur_' [-Wunused-variable] 
    array_needsize (W, rfeeds, rfeedmax, rfeedcnt + 1, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
     int ecb_unused ocur_ = (cur);          \ 
        ^
    libev/ev.c:1934:7: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (int, fdchanges, fdchangemax, fdchangecnt, EMPTY2); 
     ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
     int ecb_unused ocur_ = (cur);          \ 
        ^
    In file included from gevent/gevent.core.c:249: 
    In file included from gevent/libev.h:2: 
    In file included from libev/ev.c:2484: 
    libev/ev_kqueue.c:50:3: warning: unused variable 'ocur_' [-Wunused-variable] 
    array_needsize (struct kevent, kqueue_changes, kqueue_changemax, kqueue_changecnt, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
     int ecb_unused ocur_ = (cur);          \ 
        ^
    In file included from gevent/gevent.core.c:249: 
    In file included from gevent/libev.h:2: 
    In file included from libev/ev.c:2490: 
    libev/ev_poll.c:66:7: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (struct pollfd, polls, pollmax, pollcnt, EMPTY2); 
     ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
     int ecb_unused ocur_ = (cur);          \ 
        ^
    libev/ev.c:3648:34: warning: '&' within '|' [-Wbitwise-op-parentheses] 
    fd_change (EV_A_ fd, w->events & EV__IOFDSET | EV_ANFD_REIFY); 
         ~~~~~~~~~~^~~~~~~~~~~~~ ~ 
    libev/ev.c:3648:34: note: place parentheses around the '&' expression to silence this warning 
    fd_change (EV_A_ fd, w->events & EV__IOFDSET | EV_ANFD_REIFY); 
           ^
         (     ) 
    libev/ev.c:3687:3: warning: unused variable 'ocur_' [-Wunused-variable] 
    array_needsize (ANHE, timers, timermax, ev_active (w) + 1, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
     int ecb_unused ocur_ = (cur);          \ 
        ^
    libev/ev.c:4367:5: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (ev_idle *, idles [ABSPRI (w)], idlemax [ABSPRI (w)], active, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
     int ecb_unused ocur_ = (cur);          \ 
        ^
    libev/ev.c:4407:3: warning: unused variable 'ocur_' [-Wunused-variable] 
    array_needsize (ev_prepare *, prepares, preparemax, preparecnt, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
     int ecb_unused ocur_ = (cur);          \ 
        ^
    libev/ev.c:4445:3: warning: unused variable 'ocur_' [-Wunused-variable] 
    array_needsize (ev_check *, checks, checkmax, checkcnt, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
     int ecb_unused ocur_ = (cur);          \ 
        ^
    libev/ev.c:4592:3: warning: unused variable 'ocur_' [-Wunused-variable] 
    array_needsize (ev_fork *, forks, forkmax, forkcnt, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
     int ecb_unused ocur_ = (cur);          \ 
        ^
    libev/ev.c:4675:3: warning: unused variable 'ocur_' [-Wunused-variable] 
    array_needsize (ev_async *, asyncs, asyncmax, asynccnt, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
     int ecb_unused ocur_ = (cur);          \ 
        ^
    14 warnings and 1 error generated. 
    error: command 'clang' failed with exit status 1 

    ---------------------------------------- 
    Failed building wheel for gevent 
Failed to build gevent 
Installing collected packages: gevent 
    Running setup.py install for gevent 
    Complete output from command /usr/local/opt/python/bin/python2.7 -c "import setuptools, tokenize;__file__='/private/var/folders/q8/1c24n_wj6kzc6kgl7629pwyh0000gn/T/pip-build-3zCPVx/gevent/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/q8/1c24n_wj6kzc6kgl7629pwyh0000gn/T/pip-9VpZCX-record/install-record.txt --single-version-externally-managed --compile: 
    running install 
    running build 
    running build_py 
    running build_ext 
    building 'gevent.core' extension 
    clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I /opt/local/include -L /opt/local/lib -U__llvm__ -DLIBEV_EMBED=1 -DEV_COMMON= -DEV_CLEANUP_ENABLE=0 -DEV_EMBED_ENABLE=0 -DEV_PERIODIC_ENABLE=0 -Ibuild/temp.macosx-10.11-x86_64-2.7/libev -Ilibev -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c gevent/gevent.core.c -o build/temp.macosx-10.11-x86_64-2.7/gevent/gevent.core.o 
    clang: warning: argument unused during compilation: '-L/opt/local/lib' 
    In file included from gevent/gevent.core.c:249: 
    In file included from gevent/libev.h:2: 
    libev/ev.c:483:48: warning: '/*' within block comment [-Wcomment] 
    /*#define MIN_INTERVAL 0.00000095367431640625 /* 1/2**20, good till 2200 */ 
               ^
    libev/ev.c:1029:42: error: '_Noreturn' keyword must precede function declarator 
     ecb_inline void ecb_unreachable (void) ecb_noreturn; 
              ^~~~~~~~~~~~ 
     _Noreturn 
    libev/ev.c:832:26: note: expanded from macro 'ecb_noreturn' 
     #define ecb_noreturn _Noreturn 
          ^
    libev/ev.c:1625:31: warning: 'extern' variable has an initializer [-Wextern-initializer] 
     EV_API_DECL struct ev_loop *ev_default_loop_ptr = 0; /* needs to be initialised to make it a definition despite extern */ 
           ^
    libev/ev.c:1796:7: warning: unused variable 'ocur_' [-Wunused-variable] 
      array_needsize (ANPENDING, pendings [pri], pendingmax [pri], w_->pending, EMPTY2); 
     ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
      int ecb_unused ocur_ = (cur);          \ 
         ^
    libev/ev.c:1807:3: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (W, rfeeds, rfeedmax, rfeedcnt + 1, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
      int ecb_unused ocur_ = (cur);          \ 
         ^
    libev/ev.c:1934:7: warning: unused variable 'ocur_' [-Wunused-variable] 
      array_needsize (int, fdchanges, fdchangemax, fdchangecnt, EMPTY2); 
     ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
      int ecb_unused ocur_ = (cur);          \ 
         ^
    In file included from gevent/gevent.core.c:249: 
    In file included from gevent/libev.h:2: 
    In file included from libev/ev.c:2484: 
    libev/ev_kqueue.c:50:3: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (struct kevent, kqueue_changes, kqueue_changemax, kqueue_changecnt, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
      int ecb_unused ocur_ = (cur);          \ 
         ^
    In file included from gevent/gevent.core.c:249: 
    In file included from gevent/libev.h:2: 
    In file included from libev/ev.c:2490: 
    libev/ev_poll.c:66:7: warning: unused variable 'ocur_' [-Wunused-variable] 
      array_needsize (struct pollfd, polls, pollmax, pollcnt, EMPTY2); 
     ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
      int ecb_unused ocur_ = (cur);          \ 
         ^
    libev/ev.c:3648:34: warning: '&' within '|' [-Wbitwise-op-parentheses] 
     fd_change (EV_A_ fd, w->events & EV__IOFDSET | EV_ANFD_REIFY); 
          ~~~~~~~~~~^~~~~~~~~~~~~ ~ 
    libev/ev.c:3648:34: note: place parentheses around the '&' expression to silence this warning 
     fd_change (EV_A_ fd, w->events & EV__IOFDSET | EV_ANFD_REIFY); 
            ^
          (     ) 
    libev/ev.c:3687:3: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (ANHE, timers, timermax, ev_active (w) + 1, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
      int ecb_unused ocur_ = (cur);          \ 
         ^
    libev/ev.c:4367:5: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (ev_idle *, idles [ABSPRI (w)], idlemax [ABSPRI (w)], active, EMPTY2); 
     ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
      int ecb_unused ocur_ = (cur);          \ 
         ^
    libev/ev.c:4407:3: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (ev_prepare *, prepares, preparemax, preparecnt, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
      int ecb_unused ocur_ = (cur);          \ 
         ^
    libev/ev.c:4445:3: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (ev_check *, checks, checkmax, checkcnt, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
      int ecb_unused ocur_ = (cur);          \ 
         ^
    libev/ev.c:4592:3: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (ev_fork *, forks, forkmax, forkcnt, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
      int ecb_unused ocur_ = (cur);          \ 
         ^
    libev/ev.c:4675:3: warning: unused variable 'ocur_' [-Wunused-variable] 
     array_needsize (ev_async *, asyncs, asyncmax, asynccnt, EMPTY2); 
    ^
    libev/ev.c:1758:22: note: expanded from macro 'array_needsize' 
      int ecb_unused ocur_ = (cur);          \ 
         ^
    14 warnings and 1 error generated. 
    error: command 'clang' failed with exit status 1 

    ---------------------------------------- 
Command "/usr/local/opt/python/bin/python2.7 -c "import setuptools, tokenize;__file__='/private/var/folders/q8/1c24n_wj6kzc6kgl7629pwyh0000gn/T/pip-build-3zCPVx/gevent/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/q8/1c24n_wj6kzc6kgl7629pwyh0000gn/T/pip-9VpZCX-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/q8/1c24n_wj6kzc6kgl7629pwyh0000gn/T/pip-build-3zCPVx/gevent 

Odpowiedz

93

użycie CFLAGS='-std=c99' pip install gevent aby rozwiązać ten problem.

na OS X 10.11, clang używa domyślnie c11, więc po prostu wróć do c99.

+4

Mam 10.10.5, nie mogę zainstalować gevent, a to rozwiązało mój problem. – red

+1

Dobry lordzie to doprowadzało mnie do szału w systemie OS X 10.10.5, ten sam problem, a ustawienie CFLAGS jako root i instalacja 'gevent' zrobiła sztuczkę - dzięki! – Wells

+0

To działało również dla mnie. Ich skrypt instalacyjny powinien obsłużyć to ... – ysakamoto

12

wpadłem na tym samym numerze na moim OSX 10.10.5, próbuje zainstalować flask-socketio, która gevent jako zależność, ale:

sudo CFLAGS='-std=c99' pip install flask-socketio 

dał mi

Successfully installed flask-socketio-0.6.0 gevent-1.0.2 gevent-socketio-0.3.6 gevent-websocket-0.9.5 

So, tonicbupt'S Odpowiedź zadziałała również w tym przypadku.

+0

W dniu 10.11 musiałem użyć 'sudo CFLAGS = '- std = c99' pip install-socketio --no-use-wheel', aby uruchomić to. –

5

zmarnowałem swój czas na dwa dni, a poniżej rozwiązanie dla użytkowników komputerów Mac ...

pip install gevent==1.1b5 

Rozwiązanie: gevent fails to install in a python virtual environment on OS X Capitan

+0

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać odnośnik. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. - [Z recenzji] (/ opinia/niskiej jakości-posty/10647395) – fasteque

+1

Dziękuję za komentarz. Tylko 'pip install gevent == 1.1b5' rozwiązał mój problem. Nie sądzę, że jest to odpowiedź "tylko link". –

3

na Mac OS X El Capitan, musiałem zrobić obie rzeczy które zostały wymienione we wcześniejszych odpowiedziach, ustaw zmienną CFLAGS i downgrade, ale musiałem użyć wersji 1.0, aby usunąć błędy kompilatora.

CFLAGS='-std=c99' pip install gevent==1.0 
+1

1.0.2 jest OK na el Capitan, z CFLAGS jak wyżej, ale kompilator C produkuje sporo warings – tgdavies

1

opisany w jego PyPI instruction,

pip install --pre gevent

należy zainstalować wersję Release Candidate (1.1rc4 dniem 22 lutego 2016 roku), który działa na OS X 10.11.

0

W tej chwili gevent 1.1.0 final jest wydany w formie koła binarnego dla OS X, a pip zainstaluje je domyślnie. Binarne koło dla gevent 1.0.2 dla OS X jest również dostępne dla tych, którzy nie mogą dokonać aktualizacji do nowszej wersji. Oba zostały przetestowane pod kątem instalacji w systemie OS X 10.11 za pomocą Pythona 2.6 i 2.7 dystrybuowanego przez firmę Apple, a także w wersji 2.7 Pythona pobranego z python.org. (Jeśli masz problemy z instalacją kół binarnych, być może będziesz musiał zaktualizować swoją wersję pip).

Nie ma już potrzeby ustawiania specjalnych CFLAGS, chyba że musisz skompilować 1.0.2 ze źródła. (1.1.0 nie cierpi z powodu tego problemu).

Zwróć uwagę, że koła są dystrybuowane dla "wąskich" wersji Unicode w języku Python, więc jeśli używasz "szerokiej" kompilacji, musisz skompilować źródło. W takim przypadku ustawienie CFLAGS = "- std = c99" jest wymagane dla gevent 1.0.2 (ale nie 1.1.0.)