make error: cannot find -lpython3.4

58 views
Skip to first unread message

D. Araujo

unread,
Aug 31, 2018, 3:13:27 PM8/31/18
to Caffe Users
After successfully making caffe, I try to make pycaffe, but it outputs this error:

$ make pycaffe
CXX
/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
/usr/bin/ld: cannot find -lpython3.4
collect2
: error: ld returned 1 exit status
make
: *** [python/caffe/_caffe.so] Error 1

I'm running on Ubuntu 16.04 and my pyhon3 version is 3.5.2 (system default)

The paths to libpython are:

$ sudo find / -name *libpython*so  
/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so
/usr/lib/x86_64-linux-gnu/libpython3.5m.so
/usr/lib/x86_64-linux-gnu/libpython2.7.so
/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5m.so
/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5.so

Thus, the Makefile.config looks like this:

## Refer to http://caffe.berkeleyvision.org/installation.html
# Contributions simplifying and improving our build system are welcome!


# cuDNN acceleration switch (uncomment to build with cuDNN).
# USE_CUDNN := 1


# CPU-only switch (uncomment to build without GPU support).
CPU_ONLY
:= 1


# To customize your choice of compiler, uncomment and set the following.
# N.B. the default for Linux is g++ and the default for OSX is clang++
# CUSTOM_CXX := g++


# CUDA directory contains bin/ and lib/ directories that we need.
CUDA_DIR
:= /usr/local/cuda
# On Ubuntu 14.04, if cuda tools are installed via
# "sudo apt-get install nvidia-cuda-toolkit" then use this instead:
# CUDA_DIR := /usr


# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 lines for compatibility.
CUDA_ARCH
:= -gencode arch=compute_20,code=sm_20 \
       
-gencode arch=compute_20,code=sm_21 \
       
-gencode arch=compute_30,code=sm_30 \
       
-gencode arch=compute_35,code=sm_35 \
       
-gencode arch=compute_50,code=sm_50 \
       
-gencode arch=compute_50,code=compute_50


# BLAS choice:
# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlas
BLAS
:= atlas
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
# BLAS_INCLUDE := /path/to/your/blas
# BLAS_LIB := /path/to/your/blas


# This is required only if you will compile the matlab interface.
# MATLAB directory should contain the mex binary in /bin.
# MATLAB_DIR := /usr/local
# MATLAB_DIR := /Applications/MATLAB_R2012b.app


# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
PYTHON_INCLUDE
:= /usr/include/python3.5m/ \
         
/usr/local/lib/python3.5/dist-packages/numpy/core/include/
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
# ANACONDA_HOME := $(HOME)/anaconda
# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
       
# $(ANACONDA_HOME)/include/python2.7 \
       
# $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \


# We need to be able to find libpythonX.X.so or .dylib.
PYTHON_LIB
:= /usr/lib/x86_64-linux-gnu
# PYTHON_LIB := $(ANACONDA_HOME)/lib


# Uncomment to support layers written in Python (will link against Python libs)
# WITH_PYTHON_LAYER := 1


# Whatever else you find you need goes here.
INCLUDE_DIRS
:= $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS
:= $(PYTHON_LIB) /usr/local/lib /usr/lib


# Uncomment to use `pkg-config` to specify OpenCV library paths.
# (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.)
# USE_PKG_CONFIG := 1


BUILD_DIR
:= build
DISTRIBUTE_DIR
:= distribute


# Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171
# DEBUG := 1


# The ID of the GPU that 'make runtest' will use to run unit tests.
TEST_GPUID
:= 0


# enable pretty build (comment to see full commands)
Q
?= @


As far as I understand, it is looking for libpython3.4, but my version is libpython3.5. What is happening and how can I solve this?

Przemek D

unread,
Sep 3, 2018, 5:34:48 AM9/3/18
to Caffe Users
I'm not an expert on linux so this might be a pretty crazy idea, but what if you created softlinks to your 3.5 libraries but under the 3.4 name?
Reply all
Reply to author
Forward
0 new messages