---
slug: "python-docker-alpine-reportlab-not-a-directory-reportlab_mods"
title: "When Installing reportlab in Python on Alpine, It Results in \"Not a directory: '/dev/null/.reportlab_mods'\""
description: "Include something like `ENV HOME=/var/app` in the Dockerfile. The directory should be an appropriate one with the necessary permissions."
url: "https://www.ytyng.com/en/blog/python-docker-alpine-reportlab-not-a-directory-reportlab_mods"
publish_date: "2022-02-04T07:45:31Z"
created: "2022-02-04T07:45:31Z"
updated: "2026-02-25T23:56:24.828Z"
categories: []
keywords: ""
featured_image_url: "https://media.ytyng.com/resize/20230812/193cadf89acc41cf8b4ae1b3a97e51fe.png.webp?width=768"
has_video: false
has_music: false
video_urls: []
music_urls: []
lang: "en"
---

# When Installing reportlab in Python on Alpine, It Results in "Not a directory: '/dev/null/.reportlab_mods'"

When you encounter an error like this:

<pre> File "&lt;frozen importlib._bootstrap&gt;", line 1030, in _gcd_import<br /> File "&lt;frozen importlib._bootstrap&gt;", line 1007, in _find_and_load<br /> File "&lt;frozen importlib._bootstrap&gt;", line 986, in _find_and_load_unlocked<br /> File "&lt;frozen importlib._bootstrap&gt;", line 680, in _load_unlocked<br /> File "&lt;frozen importlib._bootstrap_external&gt;", line 855, in exec_module<br /> File "&lt;frozen importlib._bootstrap&gt;", line 228, in _call_with_frames_removed<br /> File "/var/src/manga-server-django/delivery/models.py", line 464, in &lt;module&gt;<br /> from reportlab.pdfbase import pdfmetrics<br /> File "/usr/lib/python3.9/site-packages/reportlab/__init__.py", line 56, in &lt;module&gt;<br /> _fake_import(os.path.expanduser(os.path.join('~','.reportlab_mods')),'reportlab_mods')<br /> File "/usr/lib/python3.9/site-packages/reportlab/__init__.py", line 28, in _fake_import<br /> sys.modules[name] = m.load_module(name)<br /> File "&lt;frozen importlib._bootstrap_external&gt;", line 529, in _check_name_wrapper<br /> File "&lt;frozen importlib._bootstrap_external&gt;", line 1034, in load_module<br /> File "&lt;frozen importlib._bootstrap_external&gt;", line 859, in load_module<br /> File "&lt;frozen importlib._bootstrap&gt;", line 274, in _load_module_shim<br /> File "&lt;frozen importlib._bootstrap&gt;", line 711, in _load<br /> File "&lt;frozen importlib._bootstrap&gt;", line 680, in _load_unlocked<br /> File "&lt;frozen importlib._bootstrap_external&gt;", line 851, in exec_module<br /> File "&lt;frozen importlib._bootstrap_external&gt;", line 987, in get_code<br /> File "&lt;frozen importlib._bootstrap_external&gt;", line 1044, in get_data<br />NotADirectoryError: [Errno 20] Not a directory: '/dev/null/.reportlab_mods'</pre>

Upon closely examining the error message, you will notice that:

<pre>os.path.join('~','.reportlab_mods')</pre>

is being converted to:

<pre> '/dev/null/.reportlab_mods'</pre>

which is causing the error. To resolve this, you need to add a line like:

<pre>ENV HOME=/var/app</pre>

to your Dockerfile. The directory should be an appropriate one with the necessary permissions.

This issue occurs when running a Python application as a non-root user.
