1、执行 pip3 install gevent
2、报错 importlib._bootstrap' has no attribute 'SourceFileLoader'
3、重新安装pip3
wget https://bootstrap.pypa.io/pip/3.6/get-pip.py
python3 get-pip.py
pip3 -v
4、再次执行 pip3 install gevent
5、# python3
Python 3.6.8 (default, Nov 16 2020, 16:55:22)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gevent
正常导入模块
附代码
文件名:coroutine-tcpserver.py
#!/bin/env python3
from gevent import monkey;monkey.patch_all()
import socket
from gevent import spawn
def communication(conn):
while True:
try:
data = conn.recv(1024)
if len(data) == 0:break
conn.send(data.upper())
except ConnectionResetError as e:
print(e)
break
conn.close()
def server(ip,port):
server = socket.socket()
server.bind((ip,port))
server.listen(5)
while True:
conn,addr = server.accept()
spawn(communication,conn)
if __name__=='__main__':
g1 = spawn(server,'127.0.0.1',8080)
g1.join()
文件名:coroutine-tcpclient.py
#!/bin/env python3
from threading import Thread,current_thread
import socket
def x_client():
client = socket.socket()
client.connect(('127.0.0.1',8080))
n = 0
while True:
msg = ' %s sya hello %s'%(current_thread().name,n)
n +=1
client.send(msg.encode('utf-8'))
data = client.recv(1024)
print(data.decode('utf-8'))
if __name__=='__main__':
for i in range(500):
t = Thread(target=x_client)
t.start()
运行结果
THREAD-344 SYA HELLO 76
THREAD-228 SYA HELLO 77
THREAD-410 SYA HELLO 67
THREAD-385 SYA HELLO 69
THREAD-355 SYA HELLO 80
THREAD-244 SYA HELLO 85
THREAD-271 SYA HELLO 82
THREAD-283 SYA HELLO 71
THREAD-456 SYA HELLO 59
THREAD-97 SYA HELLO 68
THREAD-263 SYA HELLO 64