Centos7 安装sklearn gcc: error: ‘-Qunused-arguments’

本文档详细记录了解决在CentOS7环境下安装Sklearn过程中遇到的各种错误的方法。通过更新pip版本并使用whl安装文件成功安装了Scikit-Learn,并验证了安装的有效性。

1. 在centos7上安装sklearn各种报错

gcc: error: unrecognized command line option ‘-Qunused-arguments’
gcc: error: unrecognized command line option ‘-Qunused-arguments’
gcc: error: unrecognized command line option ‘-Qunused-arguments’

google下应该是pip版本问题,之前安装的pip版本是7.1,现在最新版本都到8.1了

2. 在pipy下载pip whl安装文件

https://pypi.python.org/pypi/pip下载whl安装文件

下载:

[root@slaver3 ~]# wget https://pypi.python.org/packages/9c/32/004ce0852e0a127f07f358b715015763273799bd798956fa930814b60f39/pip-8.1.2-py2.py3-none-any.whl#md5=0570520434c5b600d89ec95393b2650b
--2016-09-05 16:19:48--  https://pypi.python.org/packages/9c/32/004ce0852e0a127f07f358b715015763273799bd798956fa930814b60f39/pip-8.1.2-py2.py3-none-any.whl
Resolving pypi.python.org (pypi.python.org)... 151.101.24.223, 2a04:4e42:6::223
Connecting to pypi.python.org (pypi.python.org)|151.101.24.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1198961 (1.1M) [application/octet-stream]
Saving to: ‘pip-8.1.2-py2.py3-none-any.whl100%[=====================================================>] 1,198,961    667KB/s   in 1.8s

2016-09-05 16:19:50 (667 KB/s) - ‘pip-8.1.2-py2.py3-none-any.whl’ saved [1198961/1198961]

安装

[root@slaver3 ~]# pip install pip-8.1.2-py2.py3-none-any.whl
You are using pip version 7.1.0, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Processing ./pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 7.1.0
    Uninstalling pip-7.1.0:
      Successfully uninstalled pip-7.1.0
Successfully installed pip-8.1.2

3. pip安装sklearn

[root@slaver3 Cython-0.24.1]# pip install sklearn
Collecting sklearn
Collecting scikit-learn (from sklearn)
  Downloading scikit_learn-0.17.1-cp27-cp27mu-manylinux1_x86_64.whl (17.6MB)
    100% |████████████████████████████████| 17.6MB 50kB/s
Installing collected packages: scikit-learn, sklearn
Successfully installed scikit-learn-0.17.1 sklearn-0.0

4. 验证是否安装成功

[root@slaver3 Cython-0.24.1]# ipython
Python 2.7.5 (default, Aug 18 2016, 15:58:25)
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: from sklearn.datasets import load_iris

In [2]: iris = load_iris()

In [3]: iris.data
Out[3]:
array([[ 5.1,  3.5,  1.4,  0.2],
       [ 4.9,  3. ,  1.4,  0.2],
       [ 4.7,  3.2,  1.3,  0.2],
       [ 4.6,  3.1,  1.5,  0.2],
       [ 5. ,  3.6,  1.4,  0.2],
......
### PyInstaller 错误 `unrecognized arguments: --staticlib` 的解决方法 PyInstaller 并不原生支持 `--staticlib` 这个命令行参数,因此在尝试使用该参数时会报错:`error: unrecognized arguments: --staticlib`。该参数并非 PyInstaller 官方文档中列出的有效选项,而是某些社区讨论中提及的实验性用法,可能导致兼容性问题[^2]。 要实现类似“静态链接”依赖库(如 `libpython3.9.so`)的效果,可以采用以下替代方案: #### 使用静态构建的 Python 解释器 从源码构建一个静态链接的 Python 环境是可行的替代方式。在配置阶段加入 `--enable-static` 选项,并完成编译安装: ```bash ./configure --enable-static --prefix=/usr/local/python3.9-static make make install ``` 使用该静态版本的 Python 来运行 PyInstaller 打包命令,可以避免对 `libpython3.9.so` 的动态依赖: ```bash /usr/local/python3.9-static/bin/python3 -m pip install pyinstaller /usr/local/python3.9-static/bin/pyinstaller --onefile your_script.py ``` 这样生成的可执行文件将包含 Python 解释器的核心部分,不再需要系统中存在对应的 `.so` 文件。 #### 使用 musl libc 实现完全静态链接 如果目标是获得一个完全静态链接的二进制文件(包括 C 标准库),可以考虑使用 [musl libc](https://musl.libc.org/) 替代 glibc。通过 `musl-gcc` 编译 Python 并结合 PyInstaller 打包,可以获得不依赖任何动态库的可执行文件: ```bash musl-gcc -static -o your_binary your_source.c ``` 对于 Python 项目,可以使用 [PyInstaller-musl](https://github.com/yyuu/pyinstaller-musl) 插件,它提供了基于 musl 的 Python 构建工具链,支持静态链接打包。 #### 使用 `patchelf` 工具重定位依赖库路径 如果静态链接不可行,也可以通过 `patchelf` 工具将 `libpython3.9.so` 打包进应用目录,并修改可执行文件的运行时库搜索路径: ```bash patchelf --set-rpath '$ORIGIN/lib' your_binary ``` 将所需的 `.so` 文件放入 `lib/` 子目录中,即可实现相对路径加载,避免依赖系统库路径中的共享库。 #### 使用低版本 glibc 环境构建兼容二进制文件 为确保在旧系统上运行,可以在 glibc 版本较低的环境中进行打包。例如使用 CentOS 7(glibc 2.17)的 Docker 容器进行构建: ```bash docker run -v $(pwd):/src -w /src --rm -it centos:7 /bin/bash cd /src python3.9 -m venv venv source venv/bin/activate pip install pyinstaller pyinstaller --onefile your_script.py ``` 这样生成的可执行文件可以在 glibc 2.17 及以上版本的系统中正常运行。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值