how to install gevent for pypy

1,137 views
Skip to first unread message

eye...@gmail.com

unread,
Aug 23, 2016, 7:10:22 AM8/23/16
to gevent: coroutine-based Python network library
I used to use gevent on python and everything works ok. since performance is needed i would like to use pypy to run the same codes.
OS : centos7
pypy 5.0.1.3  was installed by : yum install pypy
when i run pypy and try to import gevent:  No Module Named gevent 
I tried to install it, but see the following :

# /usr/lib64/pypy-5.0.1/bin/pip install gevent

Collecting gevent

  Using cached gevent-1.1.2.tar.gz

Building wheels for collected packages: gevent

  Running setup.py bdist_wheel for gevent ... error

  Complete output from command /bin/pypy -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ZRYZrP/gevent/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpRvud_Xpip-wheel- --python-tag pp250:

  Running '(cd  "/tmp/pip-build-ZRYZrP/gevent/libev"  && /bin/sh ./configure   && cp config.h "$OLDPWD" ) > configure-output.txt' in /tmp/pip-build-ZRYZrP/gevent

  Running 'rm config.h' in /tmp/pip-build-ZRYZrP/gevent

  running bdist_wheel

  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/__init__.py -> build/lib.linux-x86_64-2.7/gevent

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  running egg_info

  creating gevent.egg-info

  writing gevent.egg-info/PKG-INFO

  writing dependency_links to gevent.egg-info/dependency_links.txt

  writing top-level names to gevent.egg-info/top_level.txt

  writing manifest file 'gevent.egg-info/SOURCES.txt'

  warning: manifest_maker: standard file '-c' not found

  

  reading manifest file 'gevent.egg-info/SOURCES.txt'

  reading manifest template 'MANIFEST.in'

  no previously-included directories found matching '*/__pycache__'

  warning: no previously-included files matching '*.so' found anywhere in distribution

  warning: no previously-included files matching '*.o' found anywhere in distribution

  no previously-included directories found matching 'doc/_build'

  warning: no previously-included files matching '*.pyc' found anywhere in distribution

  warning: no previously-included files matching '.coverage' found under directory 'greentest'

  no previously-included directories found matching 'greentest/htmlcov'

  warning: no previously-included files matching 'stamp-h?' found under directory 'c-ares'

  warning: no previously-included files matching 'ares_build.h.orig' found under directory 'c-ares'

  warning: no previously-included files matching '_corecffi.c' found under directory 'gevent'

  warning: no previously-included files found matching 'Makefile'

  writing manifest file 'gevent.egg-info/SOURCES.txt'

  copying gevent/_semaphore.pxd -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/ares.pyx -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/callbacks.c -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/callbacks.h -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/cares.pxd -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/cares_ntop.h -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/cares_pton.h -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/corecext.ppyx -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/corecext.pyx -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/dnshelper.c -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/gevent._semaphore.c -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/gevent.ares.c -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/gevent.ares.h -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/gevent.corecext.c -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/gevent.corecext.h -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/libev.h -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/libev.pxd -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/libev_vfd.h -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/python.pxd -> build/lib.linux-x86_64-2.7/gevent

  copying gevent/stathelper.c -> build/lib.linux-x86_64-2.7/gevent

  running build_ext

  generating cffi module 'build/temp.linux-x86_64-2.7/gevent._corecffi.c'

  creating build/temp.linux-x86_64-2.7

  Running '(cd  "/tmp/pip-build-ZRYZrP/gevent/c-ares"  && if [ -r ares_build.h ]; then cp ares_build.h ares_build.h.orig; fi   && /bin/sh ./configure CONFIG_COMMANDS= CONFIG_FILES=   && cp ares_config.h ares_build.h "$OLDPWD"   && mv ares_build.h.orig ares_build.h) > configure-output.txt' in /tmp/pip-build-ZRYZrP/gevent/build/temp.linux-x86_64-2.7/c-ares

  building 'gevent.ares' extension

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

  cc -O2 -fPIC -Wimplicit -DHAVE_CONFIG_H= -DCARES_EMBED=1 -Ibuild/temp.linux-x86_64-2.7/c-ares -Ic-ares -I/usr/lib64/pypy-5.0.1/include -c gevent/gevent.ares.c -o build/temp.linux-x86_64-2.7/gevent/gevent.ares.o

  gevent/gevent.ares.c:4:20: fatal error: Python.h: No such file or directory

   #include "Python.h"

                      ^

  compilation terminated.

  running bdist_wheel

  running build

  running build_py

  running egg_info

  writing gevent.egg-info/PKG-INFO

  writing dependency_links to gevent.egg-info/dependency_links.txt

  writing top-level names to gevent.egg-info/top_level.txt

  warning: manifest_maker: standard file '-c' not found

  

  reading manifest file 'gevent.egg-info/SOURCES.txt'

  reading manifest template 'MANIFEST.in'

  no previously-included directories found matching '*/__pycache__'

  warning: no previously-included files matching '*.so' found anywhere in distribution

  warning: no previously-included files matching '*.o' found anywhere in distribution

  no previously-included directories found matching 'doc/_build'

  warning: no previously-included files matching '*.pyc' found anywhere in distribution

  warning: no previously-included files matching '.coverage' found under directory 'greentest'

  no previously-included directories found matching 'greentest/htmlcov'

  warning: no previously-included files matching 'ares_build.h.orig' found under directory 'c-ares'

  warning: no previously-included files matching '_corecffi.c' found under directory 'gevent'

  warning: no previously-included files found matching 'Makefile'

  writing manifest file 'gevent.egg-info/SOURCES.txt'

  running build_ext

  generating cffi module 'build/temp.linux-x86_64-2.7/gevent._corecffi.c'

  already up-to-date

  building 'gevent._corecffi' extension

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

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

  cc -O2 -fPIC -Wimplicit -O2 -fPIC -Wimplicit -I/tmp/pip-build-ZRYZrP/gevent/gevent -I/tmp/pip-build-ZRYZrP/gevent/libev -I/usr/lib64/pypy-5.0.1/include -c build/temp.linux-x86_64-2.7/gevent._corecffi.c -o build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7/gevent._corecffi.o

  build/temp.linux-x86_64-2.7/gevent._corecffi.c:2:20: fatal error: Python.h: No such file or directory

   #include <Python.h>

                      ^

  compilation terminated.

  error: command 'cc' failed with exit status 1

  

  ----------------------------------------

  Failed building wheel for gevent

  Running setup.py clean for gevent

Failed to build gevent

Installing collected packages: gevent

  Running setup.py install for gevent ... error

    Complete output from command /bin/pypy -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ZRYZrP/gevent/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-_YPMM_-record/install-record.txt --single-version-externally-managed --compile:

    Running '(cd  "/tmp/pip-build-ZRYZrP/gevent/libev"  && /bin/sh ./configure   && cp config.h "$OLDPWD" ) > configure-output.txt' in /tmp/pip-build-ZRYZrP/gevent

    Running 'rm config.h' in /tmp/pip-build-ZRYZrP/gevent

    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/__init__.py -> build/lib.linux-x86_64-2.7/gevent

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    running egg_info

    writing gevent.egg-info/PKG-INFO

    writing dependency_links to gevent.egg-info/dependency_links.txt

    writing top-level names to gevent.egg-info/top_level.txt

    warning: manifest_maker: standard file '-c' not found

    

    reading manifest file 'gevent.egg-info/SOURCES.txt'

    reading manifest template 'MANIFEST.in'

    no previously-included directories found matching '*/__pycache__'

    warning: no previously-included files matching '*.so' found anywhere in distribution

    warning: no previously-included files matching '*.o' found anywhere in distribution

    no previously-included directories found matching 'doc/_build'

    warning: no previously-included files matching '*.pyc' found anywhere in distribution

    warning: no previously-included files matching '.coverage' found under directory 'greentest'

    no previously-included directories found matching 'greentest/htmlcov'

    warning: no previously-included files matching 'ares_build.h.orig' found under directory 'c-ares'

    warning: no previously-included files matching '_corecffi.c' found under directory 'gevent'

    warning: no previously-included files found matching 'Makefile'

    writing manifest file 'gevent.egg-info/SOURCES.txt'

    copying gevent/_semaphore.pxd -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/ares.pyx -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/callbacks.c -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/callbacks.h -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/cares.pxd -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/cares_ntop.h -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/cares_pton.h -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/corecext.ppyx -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/corecext.pyx -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/dnshelper.c -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/gevent._semaphore.c -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/gevent.ares.c -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/gevent.ares.h -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/gevent.corecext.c -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/gevent.corecext.h -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/libev.h -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/libev.pxd -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/libev_vfd.h -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/python.pxd -> build/lib.linux-x86_64-2.7/gevent

    copying gevent/stathelper.c -> build/lib.linux-x86_64-2.7/gevent

    running build_ext

    generating cffi module 'build/temp.linux-x86_64-2.7/gevent._corecffi.c'

    creating build/temp.linux-x86_64-2.7

    Running '(cd  "/tmp/pip-build-ZRYZrP/gevent/c-ares"  && if [ -r ares_build.h ]; then cp ares_build.h ares_build.h.orig; fi   && /bin/sh ./configure CONFIG_COMMANDS= CONFIG_FILES=   && cp ares_config.h ares_build.h "$OLDPWD"   && mv ares_build.h.orig ares_build.h) > configure-output.txt' in /tmp/pip-build-ZRYZrP/gevent/build/temp.linux-x86_64-2.7/c-ares

    building 'gevent.ares' extension

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

    cc -O2 -fPIC -Wimplicit -DHAVE_CONFIG_H= -DCARES_EMBED=1 -Ibuild/temp.linux-x86_64-2.7/c-ares -Ic-ares -I/usr/lib64/pypy-5.0.1/include -c gevent/gevent.ares.c -o build/temp.linux-x86_64-2.7/gevent/gevent.ares.o

    gevent/gevent.ares.c:4:20: fatal error: Python.h: No such file or directory

     #include "Python.h"

                        ^

    compilation terminated.

    running install

    running build

    running build_py

    running egg_info

    writing gevent.egg-info/PKG-INFO

    writing dependency_links to gevent.egg-info/dependency_links.txt

    writing top-level names to gevent.egg-info/top_level.txt

    warning: manifest_maker: standard file '-c' not found

    

    reading manifest file 'gevent.egg-info/SOURCES.txt'

    reading manifest template 'MANIFEST.in'

    no previously-included directories found matching '*/__pycache__'

    warning: no previously-included files matching '*.so' found anywhere in distribution

    warning: no previously-included files matching '*.o' found anywhere in distribution

    no previously-included directories found matching 'doc/_build'

    warning: no previously-included files matching '*.pyc' found anywhere in distribution

    warning: no previously-included files matching '.coverage' found under directory 'greentest'

    no previously-included directories found matching 'greentest/htmlcov'

    warning: no previously-included files matching 'ares_build.h.orig' found under directory 'c-ares'

    warning: no previously-included files matching '_corecffi.c' found under directory 'gevent'

    warning: no previously-included files found matching 'Makefile'

    writing manifest file 'gevent.egg-info/SOURCES.txt'

    running build_ext

    generating cffi module 'build/temp.linux-x86_64-2.7/gevent._corecffi.c'

    already up-to-date

    building 'gevent._corecffi' extension

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

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

    cc -O2 -fPIC -Wimplicit -O2 -fPIC -Wimplicit -I/tmp/pip-build-ZRYZrP/gevent/gevent -I/tmp/pip-build-ZRYZrP/gevent/libev -I/usr/lib64/pypy-5.0.1/include -c build/temp.linux-x86_64-2.7/gevent._corecffi.c -o build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7/gevent._corecffi.o

    build/temp.linux-x86_64-2.7/gevent._corecffi.c:2:20: fatal error: Python.h: No such file or directory

     #include <Python.h>

                        ^

    compilation terminated.

    error: command 'cc' failed with exit status 1

    

    ----------------------------------------


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



Jason Madden

unread,
Aug 23, 2016, 7:23:32 AM8/23/16
to gev...@googlegroups.com

> On Aug 23, 2016, at 01:30, eye...@gmail.com wrote:
>
> gevent/gevent.ares.c:4:20: fatal error: Python.h: No such file or directory
>
> #include "Python.h"

It looks like you need to install "pypy-dev" or whatever package includes the development headers for PyPy.

However, instead of doing that, you might want to try the "Portable PyPy distribution for Linux"[1]. While not exactly "official", these builds are linked to from the main PyPy download page[2]. They run on most linux distros, and should have everything you need to build gevent with. Plus, since PyPy development moves so quickly, they will typically be much newer (and faster!) than what you can get from your distro---they're already at PyPy 5.3, which makes PyPy 5.0 look ancient.

(Note that they don't include the 'pip' binary out of the box. Like any stock Python install, you'll first need to run 'bin/pypy -m ensurepip' and then 'bin/pip install -U pip' to get an updated pip.)

[1] https://github.com/squeaky-pl/portable-pypy#portable-pypy-distribution-for-linux
[2] http://pypy.org/download.html#default-with-a-jit-compiler
Message has been deleted

eye...@gmail.com

unread,
Aug 23, 2016, 9:56:35 AM8/23/16
to gevent: coroutine-based Python network library
it worked ! really appreciate it

在 2016年8月23日星期二 UTC+8下午7:23:32,Jason Madden写道:
Reply all
Reply to author
Forward
0 new messages