使用python multithreading.Pool 做多线程,遭遇bug3770,如何解?
伊谢尔伦
伊谢尔伦 2017-04-17 14:27:09
0
2
1183

使用python multithreading.Pool 做多线程,遭遇bug3770,如何解?

Python版本:2.7.3
系统版本:centos release 4.3
出错语句:pool = Pool(4)
错误信息:ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770

简单来说是python不支持操作系统中关于共享信号量的设置。看了些别人的帖子,也看了python官网对这个bug的解释,但是都解决不了现在的问题。
操作系统改不了,有什么方法能绕过这个问题呀,求明白人支招~~~

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(2)
黄舟

你是要做多執行緒了還是多行程?我記得pool好像是多進程的哦

迷茫

附上標準答案:
原因:沒有掛載/dev/shm;python安裝時需要寫入東西,才能開啟sem_open
解決方法:(需要root權限;以下命令root帳號執行)

  1. 修改/etc/fstab 增加:tmpfs /dev/shm tmpfs defaults 0 0

  2. mount /dev/shm

  3. chmod 777 /dev/shm

  4. 重裝python (必須重裝,沒辦法,安裝時檢查該設備是否存在,存在則可以使用sem_open)

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板