【场景】
服务器为Linux(无法连接互联网),需要部署Python运行环境访问Clickhouse数据库,已安装python3的环境;
一、安装过程
安装的时候依赖检测失败:
从网上找到对应的rpm包下载:
联网搜索相关依赖包rpm
python-srpm-macros
下载来源网站:https://pkgs.org/
点入进入获取下载链接后在Linux中使用命令下载:
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-srpm-macros-3-34.el7.noarch.rpm
离线安装clickhouse-driver
这个离线安装的包是先通过一个在线Linux安装后再下载的包:
其中下载命令:python3 -m pip download -d \usr\local\packs -r requirements.txt
安装命令:python3 -m pip install --no-index --find-links=/usr/local/driver/clickhouse-driver-offline/packs -r requirements.txt
以下是下载的相关依赖包(rpm)
二、原始离线安装的报错日志
[root@szzx01 clickhouse-driver-offline]# python3 -m pip install --no-index --find-links=/usr/local/python_driver/clickhouse-driver-offline/packs -r requirements.txt
WARNING: Running pip install with root privileges is generally not a good idea. Try `__main__.py install --user` instead.
Requirement already satisfied: backports.zoneinfo==0.2.1 in /usr/local/lib64/python3.6/site-packages (from -r requirements.txt (line 1))
Collecting clickhouse-driver==0.2.5 (from -r requirements.txt (line 2))
Requirement already satisfied: importlib-resources==5.4.0 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 3))
Requirement already satisfied: pytz==2022.7.1 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 4))
Requirement already satisfied: pytz-deprecation-shim==0.1.0.post0 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 5))
Requirement already satisfied: tzdata==2022.7 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 6))
Requirement already satisfied: tzlocal==4.2 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 7))
Requirement already satisfied: zipp==3.6.0 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 8))
Installing collected packages: clickhouse-driver
Running setup.py install for clickhouse-driver ... error
Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-qhvg_evo/clickhouse-driver/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-he5xpq81-record/install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.6
creating build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/__init__.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/block.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/blockstreamprofileinfo.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/client.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/clientinfo.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/connection.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/context.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/defines.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/errors.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/log.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/opentelemetry.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/progress.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/protocol.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/queryprocessingstage.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/reader.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/readhelpers.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/result.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
copying clickhouse_driver/writer.py -> build/lib.linux-x86_64-3.6/clickhouse_driver
creating build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/__init__.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/arraycolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/base.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/boolcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/datecolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/datetimecolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/decimalcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/enumcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/exceptions.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/floatcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/intcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/intervalcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/ipcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/lowcardinalitycolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/mapcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/nestedcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/nothingcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/nullablecolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/nullcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/service.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/simpleaggregatefunctioncolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/stringcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/tuplecolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/util.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
copying clickhouse_driver/columns/uuidcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns
creating build/lib.linux-x86_64-3.6/clickhouse_driver/compression
copying clickhouse_driver/compression/__init__.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/compression
copying clickhouse_driver/compression/base.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/compression
copying clickhouse_driver/compression/lz4.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/compression
copying clickhouse_driver/compression/lz4hc.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/compression
copying clickhouse_driver/compression/zstd.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/compression
creating build/lib.linux-x86_64-3.6/clickhouse_driver/dbapi
copying clickhouse_driver/dbapi/__init__.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/dbapi
copying clickhouse_driver/dbapi/connection.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/dbapi
copying clickhouse_driver/dbapi/cursor.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/dbapi
copying clickhouse_driver/dbapi/errors.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/dbapi
copying clickhouse_driver/dbapi/extras.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/dbapi
creating build/lib.linux-x86_64-3.6/clickhouse_driver/numpy
copying clickhouse_driver/numpy/__init__.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/numpy
copying clickhouse_driver/numpy/block.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/numpy
copying clickhouse_driver/numpy/helpers.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/numpy
copying clickhouse_driver/numpy/result.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/numpy
creating build/lib.linux-x86_64-3.6/clickhouse_driver/settings
copying clickhouse_driver/settings/__init__.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/settings
copying clickhouse_driver/settings/available.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/settings
copying clickhouse_driver/settings/types.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/settings
copying clickhouse_driver/settings/writer.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/settings
creating build/lib.linux-x86_64-3.6/clickhouse_driver/streams
copying clickhouse_driver/streams/__init__.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/streams
copying clickhouse_driver/streams/compressed.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/streams
copying clickhouse_driver/streams/native.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/streams
creating build/lib.linux-x86_64-3.6/clickhouse_driver/util
copying clickhouse_driver/util/__init__.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/util
copying clickhouse_driver/util/compat.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/util
copying clickhouse_driver/util/escape.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/util
copying clickhouse_driver/util/helpers.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/util
creating build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
copying clickhouse_driver/columns/numpy/__init__.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
copying clickhouse_driver/columns/numpy/base.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
copying clickhouse_driver/columns/numpy/boolcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
copying clickhouse_driver/columns/numpy/datecolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
copying clickhouse_driver/columns/numpy/datetimecolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
copying clickhouse_driver/columns/numpy/floatcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
copying clickhouse_driver/columns/numpy/intcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
copying clickhouse_driver/columns/numpy/lowcardinalitycolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
copying clickhouse_driver/columns/numpy/service.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
copying clickhouse_driver/columns/numpy/stringcolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
copying clickhouse_driver/columns/numpy/tuplecolumn.py -> build/lib.linux-x86_64-3.6/clickhouse_driver/columns/numpy
running build_ext
building 'clickhouse_driver.bufferedreader' extension
creating build/temp.linux-x86_64-3.6
creating build/temp.linux-x86_64-3.6/clickhouse_driver
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python3.6m -c clickhouse_driver/bufferedreader.c -o build/temp.linux-x86_64-3.6/clickhouse_driver/bufferedreader.o
clickhouse_driver/bufferedreader.c:19:20: 致命错误:Python.h:没有那个文件或目录
#include "Python.h"
^
编译中断。
error: command 'gcc' failed with exit status 1
----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-qhvg_evo/clickhouse-driver/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-he5xpq81-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-qhvg_evo/clickhouse-driver/