2013-12-16 3 views
5

Ho cercato di installare opencv su heroku senza alcun risultato. Ho provato a usare heroku-anvil per l'installazione e ora sto provando a installare opencv tramite la shell bash. In primo luogo ho installato CMake, ma poi quando cerco di make OpenCV ho inevitabilmente il seguente errore:OpenCV Python Linker Error

Linking CXX shared library ../../lib/cv2.so 
/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC 
/usr/local/lib/libpython2.7.a: could not read symbols: Bad value 
collect2: ld returned 1 exit status 
make[2]: *** [lib/cv2.so] Error 1 
make[1]: *** [modules/python/CMakeFiles/opencv_python.dir/all] Error 2 
make: *** [all] Error 2 

Ecco i comandi esatti che sto usando:

# connect to bash shell 

heroku run bash 
cd /tmp 

# Downloading and Installing cmake: 

curl -s http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.Z > cmake.tar.gz 
tar zxf cmake.tar.gz 
cd cmake-2.8.12.1/ 
./bootstrap 
make 
make install 

# Download and Install OpenCV 

curl -s https://s3.amazonaws.com/nerdglasses/opencv/OpenCV-2.4.2.tar.bz2 > opencv.tar.gz 
tar xf opencv.tar.gz 
cd OpenCV-2.4.2/ 
../cmake-2.8.12.1/bin/cmake -DBUILD_SHARED_LIBS=NO -DCMAKE_SHARED_LINKER_FLAGS="-fPIC" -DBUILD_DOCS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_OPENEXR=OFF -DCMAKE_FIND_ROOT_PATH=/app/.heroku -DCMAKE_INSTALL_PREFIX=/app/.heroku . 
make # ERROR HERE 

Qualcuno sa come risolvere questo ? O se c'è un modo migliore per installare opencv su heroku per un'app web Python?

+1

Sembra che ci sia un errore di battitura nel comando CMake. Sembra che manchi un '-' all'inizio dell'argomento' DCMAKE_SHARED_LINKER_FLAGS = "- fPIC" '. – Fraser

+0

Quindi dovrei provare 'DCMAKE_SHARED_LINKER_FLAGS =" - fPIC "'? –

+0

No - scusa - intendevo '-DCMAKE_SHARED_LINKER_FLAGS =" - fPIC "' – Fraser

risposta

2

È necessario reinstallare Python con modalità condivisa e statica.

In primo luogo, scaricare nuovamente il file di origine Python.

e poi ..

./configure --enable-shared --enable-static 
make 
make install 

In questo modo si potrebbe risolvere il problema fuori.

Ecco il link che potresti voler sapere.

Installing OpenCV with python module on CentOS goes wrong

0

Lo stesso problema è stato affrontato da me su Linux Mint 17,3 durante l'installazione Caffe e OpenCV pitone collega

io non volevo reinstallazione pitone con --enable-shared opzione in quanto c'erano parecchi pacchetti dipendenti dall'installazione nativa di Python.

On digging further found that two version's of python were installed in my system one in path /usr/local/lib/python2.7 [built using python download from official website] and other in path /usr/lib/python2.7 [installed with sudo apt-get install/ package manager]

L'installazione dal sito ufficiale non è la posizione Codice Indipendente dal abilitare condivisa non è stata fornita durante la configurazione del pitone. [PIC, è necessario utilizzare il flag del compilatore].

anche dopo aver utilizzato -fPIC non c'era fortuna e dal python a: /usr/local/lib/python2.7 non è utile per me, ha deciso di rimuovere con sotto comando

sudo rm -rf /usr/local/lib/python2.7

Ecco! Ora funziona. Ciò ha permesso a python di essere codice indipendente dalla posizione dato che si basa sull'installazione del pacchetto.