./configure --with-package=dir指定依赖的软件包

今天在编译安装php的时候出现libxml2 configure: error: xml2-config not found. Please check your libxml2 installation.错误

意思是缺少libxml2这个包的意思(安装环境是在centos6.6)

于是通过yum  install  libxml2 安装后 ./configure  --prefix=/usr/local/php(./configure  --prefix=dir目的在于指定软件安装的路径)还是提示该问题,但是我已经装了libxml2这个包,还提示找不到。原因在于./configure 配置安装php的时候,我们并没有指定依赖包的路劲。

而通过yum的方式安装软件包,会把软件包的文件复制到不同的目录下,这样也不好指定

于是可以通过编译安装libxml2 软件包的方式来进行。

1.首先下载一个libxml2-2.7.2.tar.gz软件包

2.解压进入该目录

./configure  --prefix=/usr/local/libxml2     //将libxml2软件包指定安装到/usr/local/libxml2 目录
make
make install 
3. 进入php的解压路劲,查看如何指定该软件包

[root@localhost php-5.6.4]# ./configure --help | grep libxml2
  --with-libxml-dir=DIR   LIBXML: libxml2 install prefix
  --with-libxml-dir=DIR   DOM: libxml2 install prefix
  --with-libxml-dir=DIR   SimpleXML: libxml2 install prefix
  --with-libxml-dir=DIR   SOAP: libxml2 install prefix
  --with-libxml-dir=DIR   WDDX: libxml2 install prefix
  --with-libxml-dir=DIR   XML: libxml2 install prefix
  --with-libxml-dir=DIR   XMLReader: libxml2 install prefix
  --with-libxml-dir=DIR   XMLRPC-EPI: libxml2 install prefix
  --with-libxml-dir=DIR   XMLWriter: libxml2 install prefix

通过以上的信息,我们知道libxml2的路径的指定方式

./configure --prefix=/usr/local/php  --with-libxml-dir=/usr/local/libxml2

到此问题解决,php安装成功


Processing /home/luli/DH-PTAM-master/pangolin Preparing metadata (setup.py) ... done Building wheels for collected packages: pangolin Building wheel for pangolin (setup.py) ... error error: subprocess-exited-with-error × python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [41 lines of output] running bdist_wheel running build running build_py /home/luli/anaconda3/envs/dhptam/lib/python3.8/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. ******************************************************************************** !! self.initialize_options() installing to build/bdist.linux-x86_64/wheel running install copying ./pangolin.cpython-38-x86_64-linux-gnu.so -> / Traceback (most recent call last): File "<string>", line 2, in <module> File "<pip-setuptools-caller>", line 34, in <module> File "/home/luli/DH-PTAM-master/pangolin/setup.py", line 30, in <module> setup( File "/home/luli/anaconda3/envs/dhptam/lib/python3.8/site-packages/setuptools/__init__.py", line 117, in setup return distutils.core.setup(**attrs) File "/home/luli/anaconda3/envs/dhptam/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 183, in setup return run_commands(dist) File "/home/luli/anaconda3/envs/dhptam/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 199, in run_commands dist.run_commands() File "/home/luli/anaconda3/envs/dhptam/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 954, in run_commands self.run_command(cmd) File "/home/luli/anaconda3/envs/dhptam/lib/python3.8/site-packages/setuptools/dist.py", line 999, in run_command super().run_command(command) File "/home/luli/anaconda3/envs/dhptam/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 973, in run_command cmd_obj.run() File "/home/luli/anaconda3/envs/dhptam/lib/python3.8/site-packages/setuptools/command/bdist_wheel.py", line 461, in run self.egg2dist(self.egginfo_dir, distinfo_dir) File "/home/luli/anaconda3/envs/dhptam/lib/python3.8/site-packages/setuptools/command/bdist_wheel.py", line 590, in egg2dist raise ValueError(err) ValueError: Egg metadata expected at build/bdist.linux-x86_64/wheel/./pangolin-0.0.1-py3.8.egg-info but not found [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for pangolin Running setup.py clean for pangolin Failed to build pangolin ERROR: Failed to build installable wheels for some pyproject.toml based projects (pangolin) (dhptam) luli@l
最新发布
05-21
### 解决Pangolin构建Wheel时出现的`subprocess-exited-with-error ValueError Egg metadata not found`问题 在Linux环境下,当尝试使用`setup.py bdist_wheel`构建Pangolin库的Python Wheel文件时,可能会遇到类似于`ValueError: Egg metadata not found`的错误。这种错误通常与依赖项未正确安装、编译器路径不匹配或环境变量配置不当有关。 以下是可能的原因分析以及解决方案: --- #### 原因分析 1. **缺少必要的依赖库** Pangolin库需要多个底层C/C++库的支持,例如GTK2、OpenGL、Boost等。如果这些依赖库未正确安装,则可能导致编译失败[^2]。 2. **动态链接库加载问题** 动态链接库(如`libffi.so.7`)缺失或版本冲突也可能引发此类错误。这可以通过设置`LD_PRELOAD`来临时解决[^1]。 3. **Python版本兼容性问题** Python 3.8可能存在某些元数据解析上的差异,尤其是在处理Egg格式时。确保使用的setuptools和wheel工具是最新的可以缓解此问题。 4. **编译选项或宏定义不足** 构建过程中如果没有指定正确的编译标志(如`-fPIC`),则无法生成可重定位的目标代码,从而影响最终轮子包的质量。 5. **环境变量未正确配置** 若PATH或其他相关环境变量指向了错误的位置,也会干扰正常流程。 --- #### 解决方案 ##### 方法一:更新Setuptools和Wheel 确认当前环境中安装有最新版的setuptools和wheel模块: ```bash pip install --upgrade setuptools wheel ``` ##### 方法二:验证并修复依赖关系 按照官方文档说明逐一检查所需软件包是否存在,并利用YUM/YAPT/APT等方式补齐遗漏部分。对于CentOS/RHEL系列发行版来说,建议执行如下命令以覆盖大部分基础需求: ```bash sudo yum groupinstall "Development Tools" sudo yum -y install \ qt5-qtbase-devel \ python34 python34-devel python34-pip \ python python-devel python-pip \ numpy python34-numpy \ gtk2-devel \ libpng-devel jasper-devel openexr-devel libwebp-devel \ libjpeg-turbo-devel freeglut-devel mesa-libGL mesa-libGL-devel \ libtiff-devel libdc1394-devel tbb-devel eigen3-devel \ boost boost-thread boost-devel \ libv4l-devel gstreamer-plugins-base-devel ``` ##### 方法三:调整动态链接器行为 针对特定场景下发生的符号找不到情况,可通过预载方式强制引入目标共享对象文件[^1]: ```bash export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libffi.so.7 ./configure && make clean all ``` 注意替换实际路径至对应位置处。 ##### 方法四:修正Setup Script中的参数设定 编辑项目根目录下的`setup.py`脚本,在调用扩展模块初始化函数(`Extension`)的时候显式加入额外编译开关(-fPIC),示例片段如下所示: ```python from distutils.core import Extension, setup module = Extension('example', sources=['src/example.c'], extra_compile_args=["-fPIC"]) # 添加这一行 setup(name='PackageName', version='1.0', description='This is a demo package.', ext_modules=[module]) ``` 完成以上更改后再重新发起打包操作即可。 --- ### 注意事项 尽管上述措施能够有效应对大多数常见状况,但在特殊情况下仍需结合具体报错信息进一步排查根本原因所在。另外值得注意的一点是,不同操作系统间存在细微差别,因此务必参照各自平台特性灵活运用相应策略。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值