Reputation: 2153
I am trying to build blender
so that I can use it directly from python and was going through this tutorial and I got stuck on the very first make
command giving me
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find PythonLibsUnix (missing: PYTHON_LIBRARY PYTHON_LIBPATH
PYTHON_INCLUDE_DIR PYTHON_INCLUDE_CONFIG_DIR)
I am using Ubuntu 14.04, with the system python installs (3.4.3 and 2.7.6). I am expected to specify manually these environment variables (if they are that)? Or it's something else? If the former, what are the standard paths for these?
Upvotes: 6
Views: 5267
Reputation: 812
UPDATE: Python3.10 ( and future versions I assume ) are included in the precompiled libs but the update fails to get new files often (an svn issue). If you aren't making any changes in ../lib then you are safe to use revert instead:
cd ../lib/linux_centos7_x86_64
svn revert --recursive .
don't miss the trailing period.
You shouldn't need to do anything else.
I'm leaving my original solution below:
My distro ( Devuan ) doesn't yet offer python3.10. I compiled and installed it in a custom directory so as not to affect existing python installations.
Find the python version you need and download it from https://www.python.org/downloads/
Expand it in a working directory ( ok to delete later ):
tar -xf Python-3.10.8.tgz
cd Python-3.10.8
now configure python to build with custom paths ( here I'm using ~/blenderpython )
export set BLENDERPYTHONDIR=/home/`whoami`/blenderpython
./configure --enable-optimizations --prefix=$BLENDERPYTHONDIR
make -j 4
make install
Add required packages:
cd $BLENDERPYTHONDIR/bin/;
./pip3 install numpy;
./pip3 install requests;
./pip3 install zstandard;
./pip3 install cython;
./pip3 -vvv list # to see installed and where.
# i.e. all installed in ~/blenderpython/lib/python3.10/site-packages
Now go to your blender source.. in home dir?
cd ~/blender-git/blender/
and try building again specifying your new python
BUILD_CMAKE_ARGS=-DPYTHON_EXECUTABLE=$BLENDERPYTHONDIR/bin/python3.10\ -DPYTHON_LIBRARY=$BLENDERPYTHONDIR/lib/libpython3.10.a\ -DPYTHON_INCLUDE_DIR=$BLENDERPYTHONDIR/include/python3.10/ make full
note there are two backslashed spaces in the command above.
note PYTHON_EXECUTABLE and PYTHON_LIBRARY point to files. PYTHON_INCLUDE_DIR points to... a dir.
Upvotes: 0
Reputation: 18109
this website claims that the following syntax will "re-define [all PYTHON_* variables] based on your Python prefix"
cmake ./ ../blender -U PYTHON* -D PYTHON_ROOT_DIR=/opt/my_python
and i think this should be the equivalent of passing these settings into blender 3.0's makefile
BUILD_CMAKE_ARGS=-U\ PYTHON\*\ -D\ PYTHON_ROOT_DIR=$PWD/my-path-to/Python-3.9.9/ make
...
but i still get
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
Could NOT find PythonLibsUnix (missing: PYTHON_LIBRARY PYTHON_INCLUDE_DIR
PYTHON_INCLUDE_CONFIG_DIR)
so idk, maybe this is an obsolete doc
Upvotes: 1
Reputation: 428
For compilation, you have to point to Python3:
cmake -DPYTHON_LIBRARY=/usr/bin/python3.4m -DPYTHON_INCLUDE_DIR=/usr/include/python3.4m ..
Upvotes: 6
Reputation: 28285
This will solve your issue
sudo apt-get build-dep blender
similar compile time dependency problems for other applications can be solved by doing this build-dep
trick
By cherry picking from the list of packages above cmd wants to install, you probably need just these :
sudo apt-get install libpython3-dev libpython3.4-dev
although allowing the build-dep
cmd to run will jack up otherwise disabled features you may want in blender
enjoy
Upvotes: 3
Reputation: 7079
If it isn't finding the python files then you will need to tell it where they are.
If you have checked out the current master then it would be looking for python 3.5 as this has recently been setup to be the default for the next release, you can still set it to 3.4 for now as I don't think any 3.5 specific code changes have happened yet. If you downloaded a release tarball then it should be looking for 3.4 (unless you have an older source copy)
Upvotes: 1
Reputation: 571
Maybe you are missing the python development libraries
apt-get install python-dev
??
Upvotes: 0