Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

Running polyscope on remote servers [python]

未關閉
#99 9 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
35/100
Issue 類型
缺陷
描述清晰度
需要釐清
活躍度
停滯
技術堆疊
docker, python, ubuntu
領域
devops, testing

研究方向

在 Ubuntu/Xvfb 環境中重現回報的 python -c "import polyscope as ps; ps.init()" 失敗,然後閱讀 polyscope/core.py 中顯示的初始化路徑,並與 issue #82 比較。在 headless 的 CI 式設定中,ps.init() 能夠成功執行且沒有 GLFW 或 OpenGL 錯誤,即表示完成。

由索引模型根據 Issue 內容生成。

描述

context

I am trying to run the python polyscope library in a headless environment (running some tests in CI); but that has presented some challenges. This issue is the same underlying cause as #82 .

Environment

  • docker container
  • OS: ubuntu
  • Python 3.8.6
  • Polyscope: 0.1.6

polyscope installed with: python -m pip install polyscope

Partial fixes

I worked through a couple of issues but couldn't get everything working (yet):

apt-get install -y libglfw3-dev
apt-get install -y xvfb
export DISPLAY=:99.0
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &

There error I get when running python -c "import polyscope as ps; ps.init() is the following:

[polyscope] Backend: openGL3_glfw -- Loaded openGL version: 3.3 (Core Profile) Mesa 18.3.6
[polyscope] Polyscope OpenGL Error!  Type: Invalid enum
GLError() after shader compilation! Program text:


// tag ${ GLSL_VERSION }$
// from rule: GLSL_VERSION
#version 330 core

      in vec3 a_position;
      out vec2 tCoord;

      void main()
      {
          tCoord = (a_position.xy+vec2(1.0,1.0))/2.0;
          gl_Position = vec4(a_position,1.);
      }

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/opt/conda/lib/python3.8/site-packages/polyscope/core.py", line 12, in init
    psb.init(backend)
RuntimeError: OpenGl error occurred. Text: Invalid enum
[1] + Done(1)                    Xvfb :99 -screen 0 1024x768x24 1>/dev/null 2>&1

I've put the debugging process I've been through so far and would appreciate any tips on where to go next.

Thanks for an already fantastic project! Keep up the great work 😀

Missing glfw

The first error you might encounter when running polyscope in a headless environment is a missing glfw the error looks like issue #82:
running the command: python -c "import polyscope as ps; ps.init() throws the following error:

backend = ''

    def init(backend=""):
        """Initialize Polyscope"""
    
        cwd_before = os.getcwd() # see note below
    
>       psb.init(backend)
E       RuntimeError: [polyscope] ERROR: Failed to initialize glfw

/opt/conda/envs/test/lib/python3.8/site-packages/polyscope/core.py:12: RuntimeError
Fix on ubuntu

The fix to that is to install glfw

sudo apt-get install libglfw3

Missing display

re-running the command: python -c "import polyscope as ps; ps.init()" throws the following error:

GLFW emitted error: X11: The DISPLAY environment variable is missing
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/opt/conda/lib/python3.8/site-packages/polyscope/core.py", line 12, in init
    psb.init(backend)
RuntimeError: [polyscope] ERROR: Failed to initialize glfw

v

Adding a display (to /dev/null)
apt-get install -y xvfb
export DISPLAY=:99.0
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &

(credit for this fix to: https://github.com/pyvista/gl-ci-helpers)

OpenGL error

re-running the command: python -c "import polyscope as ps; ps.init()" throws the following error:

[polyscope] Backend: openGL3_glfw -- Loaded openGL version: 3.3 (Core Profile) Mesa 18.3.6
[polyscope] Polyscope OpenGL Error!  Type: Invalid enum
GLError() after shader compilation! Program text:


// tag ${ GLSL_VERSION }$
// from rule: GLSL_VERSION
#version 330 core

      in vec3 a_position;
      out vec2 tCoord;

      void main()
      {
          tCoord = (a_position.xy+vec2(1.0,1.0))/2.0;
          gl_Position = vec4(a_position,1.);
      }

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/opt/conda/lib/python3.8/site-packages/polyscope/core.py", line 12, in init
    psb.init(backend)
RuntimeError: OpenGl error occurred. Text: Invalid enum
[1] + Done(1)                    Xvfb :99 -screen 0 1024x768x24 1>/dev/null 2>&1

At this point, I've not found a fix yet.

主要語言
C++
星號
2.2k
分支
242
平均合併
11 分鐘
30 天內合併 PR
1

貢獻指南

這個儲存庫沒有索引到貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

nmwsharp/polyscope 的其他 Issue

查看 nmwsharp/polyscope 的全部 Issue

相似的 Issue

更多 C++ Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。