Я не могу установить Gevent

Мне нужно установить Gevent для python2.7, но после попытки почти все, я все еще не устанавливаю его.
У меня есть Python 2.6.6, и здесь все работает нормально... но мне нужен python2.7 +, затем я устанавливаю Python 2.7.9 и теперь у меня есть только проблемы... До того, как какая-то часть моего проекта работает в Python 2.6, хорошо, но сейчас мой проект не работает с 2.6 и 2.7, не знаю, почему он перестает работать с 2.6, но nvm мне нужен с 2.7, но.... Я не могу установить gevent, я установил libevent-devel greenlet, но я не могу установить gevent

# pip2.7 install gevent
Collecting gevent
  Using cached gevent-1.0.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): greenlet in /usr/local/lib/python2.7/site-packages (from gevent)
Installing collected packages: gevent
  Running setup.py install for gevent
    configure: error: in `/tmp/pip-build-fpnLvN/gevent/build/temp.linux-x86_64-2.7/libev':
    configure: error: cannot run C compiled programs.
    If you meant to cross compile, use `--host'.
    See `config.log' for more details
    Running '/bin/sh /tmp/pip-build-fpnLvN/gevent/libev/configure > configure-output.txt' in /tmp/pip-build-fpnLvN/gevent/build/temp.linux-x86_64-2.7/libev
    building 'gevent.core' extension
    ccache gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -DLIBEV_EMBED=1 -DEV_COMMON= -DEV_CLEANUP_ENABLE=0 -DEV_EMBED_ENABLE=0 -DEV_PERIODIC_ENABLE=0 -Ibuild/temp.linux-x86_64-2.7/libev -Ilibev -I/usr/local/include/python2.7 -c gevent/gevent.core.c -o build/temp.linux-x86_64-2.7/gevent/gevent.core.o
    In file included from gevent/libev.h:2,
                     from gevent/gevent.core.c:313:
    libev/ev.c:45:22: error: config.h: No such file or directory
    libev/ev.c:477:48: warning: "/*" within comment
    In file included from gevent/libev.h:2,
                     from gevent/gevent.core.c:313:
    libev/ev.c:1531: warning: ‘ev_default_loop_ptr’ initialized and declared ‘extern’
    In file included from gevent/libev.h:2,
                     from gevent/gevent.core.c:313:
    libev/ev.c: In function ‘ev_io_start’:
    libev/ev.c:3554: warning: suggest parentheses around arithmetic in operand of ‘|’
    libev/ev.c:4795:27: warning: "/*" within comment
    libev/ev.c:4796:27: warning: "/*" within comment
    error: command 'ccache' failed with exit status 1
    Complete output from command /usr/local/bin/python2.7 -c "import setuptools, tokenize;__file__='/tmp/pip-build-fpnLvN/gevent/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-Ruy7Xb-record/install-record.txt --single-version-externally-managed --compile:
    running install

    running build

    running build_py

    creating build

    creating build/lib.linux-x86_64-2.7

    creating build/lib.linux-x86_64-2.7/gevent

    copying gevent/resolver_thread.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/socket.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/threadpool.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/util.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/__init__.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/monkey.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/queue.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/coros.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/server.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/_threading.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/thread.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/select.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/hub.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/fileobject.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/wsgi.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/pywsgi.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/event.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/greenlet.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/ssl.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/local.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/subprocess.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/threading.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/os.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/win32util.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/baseserver.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/lock.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/backdoor.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/pool.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/resolver_ares.py -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/timeout.py -> build/lib.linux-x86_64-2.7/gevent

    running build_ext

    configure: error: in `/tmp/pip-build-fpnLvN/gevent/build/temp.linux-x86_64-2.7/libev':

    configure: error: cannot run C compiled programs.

    If you meant to cross compile, use `--host'.

    See `config.log' for more details

    Running '/bin/sh /tmp/pip-build-fpnLvN/gevent/libev/configure > configure-output.txt' in /tmp/pip-build-fpnLvN/gevent/build/temp.linux-x86_64-2.7/libev

    building 'gevent.core' extension

    creating build/temp.linux-x86_64-2.7/gevent

    ccache gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -DLIBEV_EMBED=1 -DEV_COMMON= -DEV_CLEANUP_ENABLE=0 -DEV_EMBED_ENABLE=0 -DEV_PERIODIC_ENABLE=0 -Ibuild/temp.linux-x86_64-2.7/libev -Ilibev -I/usr/local/include/python2.7 -c gevent/gevent.core.c -o build/temp.linux-x86_64-2.7/gevent/gevent.core.o

    In file included from gevent/libev.h:2,

                     from gevent/gevent.core.c:313:

    libev/ev.c:45:22: error: config.h: No such file or directory

    libev/ev.c:477:48: warning: "/*" within comment

    In file included from gevent/libev.h:2,

                     from gevent/gevent.core.c:313:

    libev/ev.c:1531: warning: ‘ev_default_loop_ptr’ initialized and declared ‘extern’

    In file included from gevent/libev.h:2,

                     from gevent/gevent.core.c:313:

    libev/ev.c: In function ‘ev_io_start’:

    libev/ev.c:3554: warning: suggest parentheses around arithmetic in operand of ‘|’

    libev/ev.c:4795:27: warning: "/*" within comment

    libev/ev.c:4796:27: warning: "/*" within comment

    error: command 'ccache' failed with exit status 1

    ----------------------------------------
    Command "/usr/local/bin/python2.7 -c "import setuptools, tokenize;__file__='/tmp/pip-build-fpnLvN/gevent/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-Ruy7Xb-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-fpnLvN/gevent

8 ответов

Решение

Существует решение для моей проблемы, введите ссылку здесь

Вероятно, это наиболее важно (вместо python2.X введите свой питон вер. например. python2.7)export PYTHONPATH=$HOME/.local/lib/python/site-packages:$PYTHONPATH
export PYTHONPATH=$HOME/.local/lib/python2.X/site-packages:$PYTHONPATH
export PATH=$HOME/.local/bin:$PATH

Установка этого работала для меня,

sudo apt-get install libevent-dev
sudo apt-get install python-all-dev

а потом,

pip install greenlet
pip install gevent

Была аналогичная проблема, обновив пип с помощью

      pip install --upgrade pip

работал на меня. Убедитесь, что у вас установлена ​​последняя версия. В моем случае я предполагал, что создание новой виртуальной среды автоматически предоставляет последнюю версию, но я ошибался.

Это сработало для меня. Сначала удалите gevent из Pipfile.lock

"gevent": {
        "hashes": [
            "sha256:004cdbc6c18b4076acfa256c1794abf87bf9b97e0cfd4136f5098535c4b4132e",
            "sha256:3ae1ca0f533ddcb17aab16ce66b424b3f3b855ff3b9508526915d3c6b73fba31",
            "sha256:704a048005e6389fcb8276113bb9e7d0a3160bc382b9bcc629e398a43645de5c",
            "sha256:80ee22c28dae6dc70c7e4385f0d0292da9eebccf14b90620a32f10d71797838e",
            "sha256:aa224957cbbc028bbdfbec89625c7efa66bb8ddb845ed2fe323bd6b24e919dcf",
            "sha256:f3e8656f0b7bce355f14896d0b644c0a91e01fa12d9d65e6b09faad1d2c06e65"
        ],
        "index": "pypi",
        "version": "==1.0.2"
}

Затем установите Gevent вручную pipenv install gevent

Надеюсь, это сработает для вас.

Мне удалось решить эту же проблему на моем raspberry pi zero, используя скомпилированный двоичный файл вместо pip.

sudo apt-get install python-gevent

Я получал ошибки при установке gevent-websocket 0.10.1, однако проблема была решена, когда я установил greenlet:

pip3 install greenlet

сначала, а затем:

pip3 install gevent-websocket

Я попытался установить кучу других пакетов, как описано в некоторых других ответах, поэтому не уверен, помог ли какой-либо из них, но то, что заставило его работать в конце, было использовать easy_install скорее, чем pip:

easy_install gevent

Кроме того: sudo apt-get install libevent-dev sudo apt-get install python-all-dev

Мне также нужно установить (я использовал python3), чтобы решить аналогичную проблему sudo apt-get install python3-dev

Другие вопросы по тегам