/usr/bin/ld:-lpython2.7が見つかりません
-
28-10-2019 - |
質問
Python 2.7にMySQLDBをインストールしようとしています。私が得ているエラーは次のように見えます:
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/include/mysql -I/opt/python2.7/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64
gcc -pthread -shared build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib64/mysql -L. -lmysqlclient_r -lz -lpthread -lcrypt -lnsl -lm -lpthread -lmygcc -lpython2.7 -o build/lib.linux-x86_64-2.7/_mysql.so
/usr/bin/ld: cannot find -lpython2.7
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
明らかに、Python 2.7が見つかりません。見ている /usr/bin
そうですか:
python*
python2@
python2.4*
python2.7@
何をしますか @
シンボルは意味がありますか?誰かがエラーの救済策をアドバイスすることができますか?
解決
実行可能ファイルではなく、Pythonライブラリが見つかりません。走る locate libpython2.7.a
Pythonライブラリがどこにあるかを確認し、ライブラリパスに追加します(例: /opt/python2.7/lib
, 、あなたは電話したいです LDFLAGS="-L/opt/python2.7/lib" make
).
@
シンボルは、ファイルがシンボリックリンクであることを意味します。 *
それが実行可能であることを意味します(これらはによって生成されます ls -F
, 、これをエイリアスとして持っているかもしれません)。
他のヒント
上記のソリューションは、MySQL-PythonをインストールするためにPIPを使用していたため、私にとってはそれをまったくしませんでしたが、間違いなく正しい方向に大きなプッシュでした。私と同じ状況でGoogleからここに上陸した人の利益のために、私の解決策は、PythonインストールディレクトリからLib dirまでのLibpython2.7.aをシンリンクすることでした。
ln -s /opt/python2.7.1/lib/python2.7/config/libpython2.7.a/usr/local/lib/
PIPインストールMySQL-Pythonは、その後問題なく動作しました。
所属していません StackOverflow