这报错的原因是?

这报错的原因是?

# coding:utf-8


import os
import asyncio
import time
import random
import gevent

def gevent_a():
    for i in range(10):
        print(i, 'a gevent', os.getpid())
        gevent.sleep(random.random() * 2)
    return 'gevent a result'

def gevent_b():
    for i in range(10):
        print(i, 'b gevent', os.getpid())
        gevent.sleep(random.random() * 1)
    return 'b gevent result'


async def a ():  # 函数a
    for i in range(5):  # 循环10
        print(i, 'a', os.getpid())  #打印i
        await asyncio.sleep(random.random() * 2)  # 暂停返回0到1的数字乘以2

    return 'a function'

async def b():
    for i in range(5):
        print(i, 'b', os.getpid())
        await asyncio.sleep(random.random() * 2)  # 暂停返回0到1的数字乘以2

    return 'b function'

async def main():
    result = await asyncio.gather(
        a(),
        b()
    )
    print(result[0], result[1])


if __name__ == '__main__':
    start = time.time()
    # asyncio.run(main())

    g_a = gevent.spawn(gevent_a)
    g_b = gevent.spawn(gevent_b)
    gevent_list = [g_a, g_b]
    result = gevent.joinall(gevent_list)
    print(dir(result[0]))
    print(time.time() - start)
    print('parent is %s' % os.getpid())
E:\practice\venv\Scripts\python.exe E:\practice\process_test.py 
Traceback (most recent call last):
  File "E:\practice\process_test.py", line 8, in <module>
    import gevent
  File "E:\practice\venv\lib\site-packages\gevent\__init__.py", line 86, in <module>
    from gevent._hub_local import get_hub
  File "E:\practice\venv\lib\site-packages\gevent\_hub_local.py", line 101, in <module>
    import_c_accel(globals(), 'gevent.__hub_local')
  File "E:\practice\venv\lib\site-packages\gevent\_util.py", line 148, in import_c_accel
    mod = importlib.import_module(cname)
  File "E:\python3.8解释器\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "src\\gevent\\_hub_local.py", line 1, in init gevent._gevent_c_hub_local
  File "E:\practice\venv\lib\site-packages\greenlet\__init__.py", line 29, in <module>
    from ._greenlet import _C_API # pylint:disable=no-name-in-module
ImportError: DLL load failed while importing _greenlet: 找不到指定的模块。

进程已结束,退出代码1


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小猿 2023-02-02 15:34:55

同学,你好!老师这边运行代码没有报错,应该是同学gevent 包不兼容或相关依赖不兼容,同学可卸载当前gevent 版本,尝试安装其它版本的gevent 试试。

祝学习愉快~

  • 提问者 静静09 #1

    怎么卸载啊,还有怎么安装其它的版本

    2023-02-02 16:39:32
  • 好帮手慕小猿 回复 提问者 静静09 #2

    同学,你好!在终端卸载gevent 使用pip uninstall gevent命令

    https://img1.sycdn.imooc.com//climg/63db7ccb099e634407940158.jpg

    安装指定版本的包 使用命令: pip install  包名== 版本号,如下图是安装gevent为 21.12.0版本的包

    https://img1.sycdn.imooc.com//climg/63db7ddf097ed6ea08230109.jpg

    祝学习愉快~


    2023-02-02 17:11:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师