/usr/bin/ld: cannot find -lpython3.5解决方案(CentOS)

描述:
配置Apache+Django环境,使用Python3.5。
其他都OK,只差关键的一步:编译mod_wsgi生成mod_wsgi.so文件放在apache的model目录下。然而,make过程报错/usr/bin/ld: cannot find -lpython3.5。

说明:
我的系统是CentOS。
我的python3.5.2安装在了/usr/local/python3路径下。
我的Apache直接使用yum install httpd安装在默认路径下。
我编译生成的mod_wsgi.so文件:http://download.csdn.net/detail/yushulinfengprc/9697326
如果与我的配置相同,可直接将该文件复制到/usr/lib64/httpd/modules下使用。
(然后之后的内容就可以不必看了)

----------------------------------------

解决方案:
cp /usr/local/python3/lib/libpython3.so /usr/lib/libpython3.5.so
cp /usr/local/python3/lib/libpython3.so /usr/lib64/libpython3.5.so
cp -R /usr/local/python3/lib/python3.5 /usr/lib/
cp -R /usr/local/python3/lib/python3.5 /usr/lib64/

核心就是这些。之后可完成make。


----------------------------------------


附录:完整教程(CentOS)

1.python3安装
#建议自己到官网下载最新版本:https://www.python.org/
wget -c https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar -zxvf Python-3.5.2.tgz 
cd Python-3.5.2
./configure --prefix=/usr/local/python3 --enable-shared
#prefix后面是安装路径,可以换成自己的安装路径
make
make install

注:需要输入python时直接指向python3.5,可以这样处理:
cp /usr/bin/python /usr/bin/python.bak #备份python文件,万一出错可以恢复
ln -sf /usr/local/python3/bin/python3.5 /usr/bin/python #前面换成你的安装路径
需要恢复原来的python指向的话:
cp /usr/bin/python.bak /usr/bin/python

2.Apache安装
yum -y install httpd

注:启动服务:service httpd start。配置略。

3.Django安装
pip3 install django

注:Python3的pip是pip3。配置略。

4.mod_wsgi配置
下载mod_wsgi源码(官网网址):
https://code.google.com/archive/p/modwsgi/downloads?page=1
不愿的,可以使用这个3.4版本的源码:
http://download.csdn.net/detail/yushulinfengprc/9697383

tar -zxvf mod_wsgi-3.4.tar.gz
cd mod_wsgi-3.4
./configure --enable-shared
make
make install

#说明:默认configure会自动寻找Apache/Python相关文件,然后将生成的so包放在正确的路径下。
#需要手动配置的话,示例:
#./configure --with-apx=/usr/bin/apx --with-python=/usr/bin/python --enable-shared
#参数:--with-apx是Apache的apx文件路径,--with-python是python路径,可以修改此处,指定是python2.7还是python3.5

5.最后的细节
给so库加一个权限:
chmod 755 /usr/local/apache/modules/mod_wsgi.so
需要在httpd.conf加入此行(httpd.conf默认位于/etc/httpd/conf路径下):
LoadModule wsgi_module modules/mod_wsgi.so


你可能感兴趣的:(/usr/bin/ld: cannot find -lpython3.5解决方案(CentOS))