# Codejail problem with Matplotlib (Cannot create LoncapaProblem block)

**URL:** <https://discuss.openedx.org/t/codejail-problem-with-matplotlib-cannot-create-loncapaproblem-block/8779>\
**Category:** Tutor Help\
**Tags:** devstack, tutor\
**Created:** [November 23, 2022, 3:33pm UTC](https://discuss.openedx.org/t/codejail-problem-with-matplotlib-cannot-create-loncapaproblem-block/8779 "2022-11-23T15:33:39Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mian\_Safian](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/mian_safian/32/4561_2.png) [@Mian\_Safian](https://discuss.openedx.org/u/Mian_Safian)\
**Post date:** [November 23, 2022, 3:33pm UTC](https://discuss.openedx.org/t/codejail-problem-with-matplotlib-cannot-create-loncapaproblem-block/8779/1 "2022-11-23T15:33:39Z")

</div>

Hi,

I am facing the problem during the working on the codejail with matplotlib  
open edx version : openedx-mfe:14.0.1  
code jail version : codejailservice:14.1.0  
please see the error message below

`cannot create LoncapaProblem block-v1:VUP+Math101+2022+type@problem+block@3319c4e42da64a74b0e40f048e3f2599: Error while executing script code: Couldn't execute jailed code: stdout: b'', stderr: b'Traceback (most recent call last):\n File &#34;jailed_code&#34;, line 19, in <module>\n exec(code, g_dict)\n File &#34;<string>&#34;, line 66, in <module>\n File &#34;/sandbox/venv/lib/python3.8/site-packages/matplotlib/ __init__.py&#34;, line 921, in <module>\n dict.update(rcParams, _rc_params_in_file(matplotlib_fname()))\n File &#34;/sandbox/venv/lib/python3.8/site-packages/matplotlib/ __init__.py&#34;, line 602, in matplotlib_fname\n for fname in gen_candidates():\n File &#34;/sandbox/venv/lib/python3.8/site-packages/matplotlib/ __init__.py&#34;, line 599, in gen_candidates\n yield os.path.join(get_configdir(), \'matplotlibrc\')\n File &#34;/sandbox/venv/lib/python3.8/site-packages/matplotlib/ __init__.py&#34;, line 239, in wrapper\n ret = func(**kwargs)\n File &#34;/sandbox/venv/lib/python3.8/site-packages/matplotlib/ __init__.py&#34;, line 502, in get_configdir\n return _get_config_or_cache_dir(_get_xdg_config_dir())\n File &#34;/sandbox/venv/lib/python3.8/site-packages/matplotlib/ __init__.py&#34;, line 474, in _get_config_or_cache_dir\n tempfile.mkdtemp(prefix=&#34;matplotlib-&#34;)\n File &#34;/opt/pyenv/versions/3.8.6_sandbox/lib/python3.8/tempfile.py&#34;, line 347, in mkdtemp\n prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)\n File &#34;/opt/pyenv/versions/3.8.6_sandbox/lib/python3.8/tempfile.py&#34;, line 117, in _sanitize_params\n dir = gettempdir()\n File &#34;/opt/pyenv/versions/3.8.6_sandbox/lib/python3.8/tempfile.py&#34;, line 286, in gettempdir\n tempdir = _get_default_tempdir()\n File &#34;/opt/pyenv/versions/3.8.6_sandbox/lib/python3.8/tempfile.py&#34;, line 218, in _get_default_tempdir\n raise FileNotFoundError(_errno.ENOENT,\nFileNotFoundError: [Errno 2] No usable temporary directory found in [\'/tmp\', \'/var/tmp\', \'/usr/tmp\', \'/tmp/codejail-lbfd69da\']\n' with status code: 1. For more information check Codejail Service logs. `  
I have already installed the Codejail and Matplotlib on docker. Other commands working well on problem \> advance black problem.  
import os  
but getting error on the  
import matplotlib  
Codejail service logs as follows:

`{"log":"[pid: 6|app: 0|req: 20/39] 172.18.0.10 () {36 vars in 483 bytes} [Tue Nov 22 11:24:59 2022] POST /api/v0/code-exec =\u003e generated 1978 bytes in 742 msecs (HTTP/1.1 200) 2 headers in 73 bytes (1 switches on core 0)\n","stream":"stderr","time":"2022-11-22T11:25:00.151315626Z"} {"log":"2022-11-22 11:26:23,304 INFO 9 [codejailservice.app] code_exec_service.py:52 - Running problem_id:53fbaa04859f41989ab967c15a12c013 jailed code for course_id:course-v1:VUP+Math101+2022 ...\n","stream":"stderr","time":"2022-11-22T11:26:23.30489438Z"} {"log":"2022-11-22 11:26:23,343 INFO 9 [codejailservice.app] code_exec_service.py:73 - Jailed code was executed in 0.03849988000001758 seconds.\n","stream":"stderr","time":"2022-11-22T11:26:23.343618965Z"} {"log":"[pid: 9|app: 0|req: 20/40] 172.18.0.10 () {36 vars in 483 bytes} [Tue Nov 22 11:26:23 2022] POST /api/v0/code-exec =\u003e generated 73 bytes in 40 msecs (HTTP/1.1 200) 2 headers in 71 bytes (1 switches on core 0)\n","stream":"stderr","time":"2022-11-22T11:26:23.344178308Z"} {"log":"2022-11-23 04:15:24,786 INFO 6 [codejailservice.app] code_exec_service.py:52 - Running problem_id:3319c4e42da64a74b0e40f048e3f2599 jailed code for course_id:course-v1:VUP+Math101+2022 ...\n","stream":"stderr","time":"2022-11-23T04:15:24.786287416Z"} {"log":"2022-11-23 04:15:25,582 ERROR 6 [codejailservice.app] code_exec_service.py:70 - Error found while executing jailed code.\n","stream":"stderr","time":"2022-11-23T04:15:25.582527974Z"} {"log":"[pid: 6|app: 0|req: 21/41] 172.18.0.10 () {36 vars in 483 bytes} [Wed Nov 23 04:15:24 2022] POST /api/v0/code-exec =\u003e generated 1978 bytes in 798 msecs (HTTP/1.1 200) 2 headers in 73 bytes (1 switches on core 0)\n","stream":"stderr","time":"2022-11-23T04:15:25.583132326Z"} {"log":"2022-11-23 06:00:15,150 INFO 9 [codejailservice.app] code_exec_service.py:52 - Running problem_id:3319c4e42da64a74b0e40f048e3f2599 jailed code for course_id:course-v1:VUP+Math101+2022 ...\n","stream":"stderr","time":"2022-11-23T06:00:15.15073834Z"} {"log":"2022-11-23 06:00:15,891 ERROR 9 [codejailservice.app] code_exec_service.py:70 - Error found while executing jailed code.\n","stream":"stderr","time":"2022-11-23T06:00:15.8916806Z"} {"log":"[pid: 9|app: 0|req: 21/42] 172.18.0.10 () {36 vars in 483 bytes} [Wed Nov 23 06:00:15 2022] POST /api/v0/code-exec =\u003e generated 1978 bytes in 742 msecs (HTTP/1.1 200) 2 headers in 73 bytes (1 switches on core 0)\n","stream":"stderr","time":"2022-11-23T06:00:15.892225441Z"} `

---

<div class="post-metadata">

**Author:** ![j3parera](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/j3parera/32/5570_2.png) [@j3parera](https://discuss.openedx.org/u/j3parera)\
**Post date:** [June 23, 2025, 12:25pm UTC](https://discuss.openedx.org/t/codejail-problem-with-matplotlib-cannot-create-loncapaproblem-block/8779/2 "2025-06-23T12:25:14Z")

</div>

Hi Mian,  
I’ve had the same problem, and I have found a workaround. I hope it’s not too late.  
Apparently it’s a bug in the Python `tempfile` library. The fact is that the sandbox has not a `/tmp` dir needed by matplotlib and it crashes due to a `Random` object issue.  
The workaround is easy; just set an environment variable for the temp dir to be used by `matplotlib`, before importing it. Of course the path must be an existing one in the sandbox. I’ve tried

```auto
import os
os.environ["MPLCONFIGDIR"] = "/sandbox/venv"
import matplotlib.pyplot as plt

```

and it works fine.

Hope this helps.  
José Parera
