服务器非root下安装Python cyglfw3库
在服务器中跑PVNet的代码时遇到的,废了比较大的劲才解决,特意记录一下解决过程。如果你有sudo权限直接使用sudo apt-get install libglfw3-dev libglfw3就可以解决
问题描述
PVNet中有一个库为cyglfw3,需要依赖libglfw3-dev libglfw3这两个程序才能安装,而服务器中并没有这两个程序并且我没有sudo权限,因此直接使用sudo apt-get install方法行不通,如果直接使用pip安装则会出现以下错误。
问题原因
从错误信息中可以看出,导致错误的直接原因就是gcc找不到GLFW/glfe3.h这个头文件,而这个头文件就是在 libglfw3-dev libglfw3这两个程序中的,因此可以通过源码安装 libglfw3-dev libglfw3这两个程序并修改gcc的搜索路径即可解决,本文使用的为cyglfw3的源码进行安装
第一次尝试-pip安装
- 下载 libglfw3-dev libglfw3两个程序的deb安装包
apt-get download libglfw3-dev libglfw3
- 安装两个程序,这两个程序建议放在相同路径下
安装完成后生成一个usr文件夹,我们在dpkg -x libglfw3-dev /path/to/install dpkg -x libglfw3 /path/to/install
~/usr/include/GLFW
中可以找到glfw3.h头文件
- 将usr文件夹添加到环境变量中
运行pip安装仍然出现上述错误,于是寻求使用源码安装gedit ~/.bashrc # 在最后添加 export PATH=$PATH: /path/to/install/usr # 保存并退出 source gedit ~/.bashrc
第二次尝试-源码安装
- 在cyglfw3的github中下载源码
- 解压后直接运行安装程序后成功安装
python setup.py install