Building boost.Python fails with non-standard Python installation on Windows

Open
#456 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
cpp, python
Domain
build-system

Research direction

Start with the user-config.jam configuration and the bootstrap.bat and b2 entry points used in the report. Reproduce the Windows build with Python 3.13 extracted to Z:\Python313, then determine why b2 only recognizes Python 3.9. Done means the configured non-standard Python installation is recognized and Boost.Python builds successfully.

Written by the indexing model from the issue text.

Description

I'm able to successfully build boost.Python on my local machine with Python 3.13 using b2 like so:

.\bootstrap.bat vc143
.\b2 python=3.13 # other arguments

The issues start happening when I try to build on our Azure DevOps build agents. Because of .*~reasons~*. I can't install Python 3.13 directly on those build agents. So, I zipped up a python 3.13 installation, and in the build pipeline I grab the Python zip file and extract it to some directory, say, Z:\Python313. Then I created a user-config.jam in the root of the boost directory like the following:

using python : 3.13 : Z:\Python313 ;

And in the build pipeline, I try to build boost.Python like so

bootstrap.bat vc143 --with-python=3.13
b2 python=3.13

While bootstrap.bat succeeds, b2 fails with the following error:

error: "3.13" is not a known value of feature <python>
error: legal values: "3.9"

So I understand that the way I'm trying to do this is a little bit unusual, but is there a way that I can get this to work? Or must Python be installed via the installer (because b2 uses py or the registry entries that the installer creates) to build boost.Python on Windows?

Dominant language
C++
Stars
537
Forks
223
Avg merge
11h 22m
Merged PRs (30d)
2

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from boostorg/python

All issues in boostorg/python

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.