zoukankan      html  css  js  c++  java
  • mayavi与X11的一些坑总结

    1. Mayavi:https://docs.enthought.com/mayavi/mayavi/

    适合渲染各种和图形有关的数据。在大批量处理数据时,一般不希望对每一个渲染好的对象都将其显示出来,(如1万个图形显示一万次窗口,电脑会先疯掉的)

    则可以设置offscreen,不让图形渲染的窗口显示出来。详见https://docs.enthought.com/mayavi/mayavi/tips.html#off-screen-rendering

    mayavi的mlab,会在几乎每一次调用(包括import时)都创建一个python“图形化”进程,即使使用了offscreen也会创建“图形化”进程,只不过这时没有显示出窗口,但这个进程的属性仍然是“图形化”属性,它会试图调用和OpenGL相关的一个包来进行渲染(虽然不显示出来,但是例如投影射线等操作还是需要进行渲染计算的)

    本来是在mac上运行程序的,没什么问题就是特别烫。后来放在服务器1上面,但是一直显示"cannot create glx context"

    这是由于服务器1上的显卡适用于科学计算,不适用于图形渲染

    于是选择了服务器2,上面的GPU是游戏显卡,全能型选手。于是就遇到了新的坑

    2. X11与docker

    服务器2是用docker进行管理的,大家都有sudo权限,但相互不影响,每个人都是在一个独立的容器里运行的。

    此时试图运行offscreen后的渲染程序,报错xhost: unable to open display ":0.0"

    这是由于目前试图在display 0 上显示东西,但是display 0并不是我们当前用户的权限能够调用的

    于是果断切换到root用户(输入su,然后输密码即可),并切换到相应的python虚拟环境中运行渲染程序

    然后有新的报错:

    X11 forwarding request failed on channel 0

    解决方法:https://www.cyberciti.biz/faq/how-to-fix-x11-forwarding-request-failed-on-channel-0/

    注意ubuntu系统中不是sshd,是ssh,所以在修改完配置文件后,应该输入

    /etc/init.d/ssh reload

    否则会显示找不到sshd这个文件

    如果遇到以下问题,说明当前用户下没有X授权文件(即.Xauthority),

    : “X11 proxy: wrong authorisation protocol attempted"

    从你的用户目录拷贝到root目录就行了

    参考:https://superuser.com/questions/610084/putty-x11-proxy-wrong-authorisation-protocol-attempted

    比如 

    cp /home/name/.Xauthority /root/

    总的来说,遇到问题多用英文去搜索,并且要耐下性子去看英文的长篇回答,

    不要迷信权威,要多去调查,减少信息不对称

  • 相关阅读:
    AcWiing 翻硬币
    AcWing 飞行员兄弟 二进制枚举
    AcWing 费解的开关 二进制枚举
    vue发送短信逻辑
    使用celery异步发送短信
    celery配置与基本使用
    celery原理与组件
    短信验证接口
    图片验证码接口
    编写注册接口
  • 原文地址:https://www.cnblogs.com/QingHuan/p/9419749.html
Copyright © 2011-2022 走看看