beeware / beeware/briefcase

`briefcase dev` fails in Fedora 44 Kinoite Toolbox under Python 3.14

Open
#2,988 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
3.3k
Forks
549
Avg merge
1d 4h
Merged PRs (30d)
40

Description

### Describe the bug

Attempting to run `podium` from `main` with `briefcase dev` on a new Linux (Fedora Kinoite 44 Toolbox container) machine, the created virtual environment under `.briefcase` was missing its Python executables (full traceback shown below) when using Python 3.14.

This could be a compatibility issue with the toolbox image's Python 3.14 installation rather than one with 3.14 in general (switching to a `uv`-provided standalone build of Python 3.13 made the problem go away, but it's not clear if it's the "python build standalone" vs "Fedora dnf package" aspect that resolved the issue or the "Python 3.13" vs "Python 3.14" aspect).

### How to reproduce the bug

1. In a Fedora 44 Kinoite Toolbox container, install briefcase using the system Python 3.14 runtime (I tried this with both `python3 -m pip install --user briefcase` and `uv tool install briefcase`)
2. Run `briefcase dev` in a briefcase project (I used `podium`)
3. Get the exception shown below

### Minimum example code

```shell

```

### Screenshots

_No response_

### Environment details

- Operating system and version: Fedora 44 Kinoite Toolbox container
- Python version: 3.14 (system DNF package version)
- Software versions:
- Briefcase: 0.4.4

### Logs

```
⬢ [ancoghlan@toolbx podium]$ briefcase dev
Evaluating dynamic project metadata... done

[podium] Activating dev environment...

[podium] Starting in dev mode...

Log saved to /var/home/ancoghlan/devel/podium/logs/briefcase.2026_08_09-15_32_59.dev.log

Traceback (most recent call last):
File "/var/home/ancoghlan/.local/bin/briefcase", line 6, in
sys.exit(main())
~~~~^^
File "/var/home/ancoghlan/.local/lib/python3.14/site-packages/briefcase/__main__.py", line 27, in main
command(**options)
~~~~~~~^^^^^^^^^^^
File "/var/home/ancoghlan/.local/lib/python3.14/site-packages/briefcase/commands/dev.py", line 330, in __call__
return self.run_dev_app(
~~~~~~~~~~~~~~~~^
app,
^^^^
...<3 lines>...
**options,
^^^^^^^^^^
)
^
File "/var/home/ancoghlan/.local/lib/python3.14/site-packages/briefcase/commands/dev.py", line 167, in run_dev_app
app_popen = venv.Popen(
cmdline,
...<5 lines>...
bufsize=1,
)
File "/var/home/ancoghlan/.local/lib/python3.14/site-packages/briefcase/integrations/virtual_environment/base.py", line 172, in Popen
return self.tools.subprocess.Popen(args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "/var/home/ancoghlan/.local/lib/python3.14/site-packages/briefcase/integrations/subprocess.py", line 732, in Popen
return self._subprocess.Popen(
~~~~~~~~~~~~~~~~~~~~~~^
[str(arg) for arg in args], **self.final_kwargs(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib64/python3.14/subprocess.py", line 1039, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pass_fds, cwd, env,
^^^^^^^^^^^^^^^^^^^
...<5 lines>...
gid, gids, uid, umask,
^^^^^^^^^^^^^^^^^^^^^^
start_new_session, process_group)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.14/subprocess.py", line 1990, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/var/home/ancoghlan/devel/podium/.briefcase/podium/dev.cpython-314-x86_64-linux-gnu/bin/python'
```

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

Reproduce `briefcase dev` in a Fedora 44 Kinoite Toolbox with the system Python 3.14, then start with `briefcase/commands/dev.py` and `briefcase/integrations/virtual_environment/base.py` from the traceback. Compare the virtual environment created under `.briefcase` with the expected Python executable path; done means the command no longer fails with the missing-executable error, or the incompatibility is clearly identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
fedora, python
Domain
cli, operating-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.