Documenation for Python-related env vars

I am trying to build blender 3.6.4 on Manjaro linux using the instructions for Arch and getting the following error.

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  'PYTHON_VERSION=3.10' not found! This is the only officially supported
  version.  If you wish to use a newer Python version you may set
  'PYTHON_VERSION' however we do not guarantee full compatibility in this
  case.  (missing: PYTHON_LIBRARY PYTHON_LIBPATH PYTHON_INCLUDE_DIR
  PYTHON_INCLUDE_CONFIG_DIR)
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  build_files/cmake/Modules/FindPythonLibsUnix.cmake:182 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  build_files/cmake/platform/platform_unix.cmake:158 (find_package)
  CMakeLists.txt:1089 (include)

However this is the first time I have built blender. I cloned the repo, ran the build commands from the Arch instructions linked above, and got the error.

Seems like this might be related to this: Error building, At least Python 3.10 is required to build - #13 by Alaska. Running svn revert --recursive . in ./lib/linux_x86_64_glibc_228 did not help, which maybe isn’t surprising because I just ran make update and the build has never worked before.

I have also tried PYTHON_VERSION=3.11 make debug and make -e PYTHON_VERSION=3.11 debug.

I looked in build_files/cmake/platform/platform_unix.cmake to try and figure out what was going wrong, but it’s still not clear where this collection of variables are supposed to be set.

Do I just need to set PYTHON_VERSION? Do I need to set each of PYTHON_LIBRARY PYTHON_LIBPATH PYTHON_INCLUDE_DIR PYTHON_INCLUDE_CONFIG_DIR? Shouldn’t the build process automatically detect and use the version of python in lib/linux_x86_64_glibc_228 folder?

Adding a more descriptive error message and/or putting more detailed instructions in the docs, would be helpful.

It should not be needed to set environment variables. And PYTHON_VERSION is actually not an environment variable, but a CMake configuration option set in CMakeCache.txt.

Maybe the build is not picking up the lib folder? Are the blender and lib folders located next to each other?

Showing the full build log may help identify the problem. There should be a line like this:

Using pre-compiled LIBDIR: /home/username/blender-git/lib/linux_x86_64_glibc_228

There is indeed a message saying -- Unable to find LIBDIR: , system libraries may be used (disable WITH_LIBS_PRECOMPILED to suppress this message).

There are two directories called lib. One is at blender.org/blender/lib and contains the precompiled library files. The other is blender.org/lib and contains a single folder called assets.

Can you provide full paths? and for convenience also the full path were you have cloned the blender source code?

Okay so I downloaded the svn repo to the wrong location. Just moved it and now the build seems to be running!

Roughly did this:

mkdir ~/projects/blender.org
cd ~/projects/blender.org
git clone --depth 1 https://projects.blender.org/blender/blender.git
cd ./blender
git fetch --tags
git checkout tags/v3.6.4 -b v3.6.4

Now blender 3.6.4 is at ~/projects/blender.org/blender. Ran Arch instructions:

cd ~/projects/blender.org/blender
./build_files/build_environment/install_linux_packages.py
## Okay this was the mistake. Should have run `cd ~/projects/blender.org` first
mkdir ./lib
cd ./lib
svn checkout ...

It looks like the warning message is supposed to contain the path to lib files:

-- Unable to find LIBDIR: , system libraries may be used (disable WITH_LIBS_PRECOMPILED to suppress this message).

should be

-- Unable to find LIBDIR: <whatever>, system libraries may be used (disable WITH_LIBS_PRECOMPILED to suppress this message).

Glad it’s building, given you are building 3.6, just to double check, as this often goes wrong, you grabbed the libs from

https://svn.blender.org/svnroot/bf-blender/tags/blender-3.6-release/lib/.... correct?

rather than

https://svn.blender.org/svnroot/bf-blender/trunk/lib/....

?

Good call, the Arch instructions for linux currently say to use

https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_x86_64_glibc_228

The build did fail after a bit, but I didn’t have time time to investigate. I’m now downloading from

https://svn.blender.org/svnroot/bf-blender/tags/blender-3.6-release/lib/linux_x86_64_glibc_228

and will try the build again later today.

I really appreciate the pro-active help!

The instructions on the wiki are correct for building main , you took a small detour by building 3.6 hence you need this small tweak.

1 Like