pycharm 离线部署程序详细步骤

##################服务器离线安装python3##################

下载

https://www.python.org/ftp/python/

安装

tar -zxvf Python-3.10.7.tgz -C /opt/
cd /opt/Python-3.10.7

将Python3安装到此目录下

./configure --prefix=/usr/local/bin/python3

编译和安装

make && make install

##################若缺少依赖包#######################################
#系统版本查看
cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

在外网服务器上,下载依赖包,保存在 当前路径的 python3.8.3 目录下

yum install --downloadonly --downloaddir=./python3.8.3 zlib-devel bzip2-devel
openssl-devel ncurses-devel epel-release gcc gcc-c++ xz-devel readline-devel
gdbm-devel sqlite-devel tk-devel db4-devel libpcap-devel libffi-devel

yum install -y openssl openssl-devel --downloadonly --downloaddir=/home/ocdp/sxy/
yum reinstall --downloadonly --downloaddir=/home/ocdp/sxy/ openssl openssl-devel
yumdownloader --resolve --destdir=. openssl openssl-devel

把从外网下载的依赖包,拷贝到内网,进行安装

rpm -Uvh ./*.rpm --nodeps --force
##################若缺少依赖包#######################################

创建python3软连接

ln -s /usr/local/bin/python3/bin/python3 /usr/bin/python3

创建pip3的软连接

ln -s /usr/local/bin/python3/bin/pip3 /usr/bin/pip3

##################pycharm下载依赖包##########################
pip freeze >requirements.txt

pip download -d ./packages -r requirements.txt
当使用 --platform(操作系统)、–python-version(python 版本)、–implementation或–abi(解释器版本),作为限制条件时,必须设置–no-deps(不下载所依赖的模块),或者设置–only-binary=:all:(),并且不能设置–no-binary(或者必须设置为–no-binary=:none: )

##################服务器安装venv##########################
https://pypi.org/search/?q=virtualenv

$ tar xvfz virtualenv-X.X.tar.gz
$ cd virtualenv-X.X
$ sudo python3 setup.py install

注:此处可能出现缺少依赖的情况,需要根据实际情况补充
下载地址–https://pypi.org/search/?q=&o=,搜索到后下载whl文件。

python3 -m pip install pyparsing-3.0.9-py3-none-any.whl
python3 -m pip install packaging-21.3-py3-none-any.whl
python3 -m pip install typing_extensions-4.4.0-py3-none-any.whl
python3 -m pip install tomli-2.0.1-py3-none-any.whl
python3 -m pip install setuptools_scm-7.0.5-py3-none-any.whl

python3 -m pip install filelock-3.8.0-py3-none-any.whl
python3 -m pip install distlib-0.3.6-py2.py3-none-any.whl
python3 -m pip install platformdirs-2.5.4-py3-none-any.whl

##################服务器项目启动venv##########################
在项目根路径下启动virtualenv

virtualenv venv // 创建虚拟环境venv,最好在项目根目录下执行
cd venv // 进入虚拟环境目录
source ./bin/activate // 进入虚拟环境

在依赖包所在路径下执行
pip3 install --no-index --find-links=./ <包名> -r <where_you_are>/<项目根目录>/requirements.txt
pip3 list // 查看安装的依赖
实测下列命令会出现安装顺序问题

启动项目
python3 start.py & //根据项目编辑

退出virtualenv
deactivate

#################librdkafka安装##########################
安装依赖:https://github.com/edenhill/librdkafka
yum -y install openssl openssl-devel
yum install cyrus-sasl-gssapi cyrus-sasl-devel
rpm -qa| grep openssl
openssl-1.0.2k-16.el7.x86_64
openssl-libs-1.0.2k-16.el7.x86_64
openssl-devel-1.0.2k-16.el7.x86_64

安装librdkafka

解压包

tar -xvzf librdkafka-1.2.1.tar.gz
cd librdkafka-1.2.1

编译源码

./configure
make & make install
检查:
checking for libssl (by pkg-config)… ok
checking for libssl (by compile)… ok (cached)

pip3 install confluent-kafka
pip3 list

替换库文件!!!
查找
find / -name “librdkafka*”
/root/.pyenv/versions/3.7.2/lib/python3.7/site-packages/confluent_kafka/.libs/librdkafkaXXXXXXXX.so.1

替换
cd /root/.pyenv/versions/3.7.2/lib/python3.7/site-packages/confluent_kafka/.libs/
mv librdkafka.so.1 librdkafka.so.1.bak

查找编译librdkafka生产的文件
find / -name “librdkafka.so.1”
/usr/lib64/librdkafka.so.1
/home/ocdp/sxy/librdkafka-master/src/librdkafka.so.1

ln -s /home/ocdp/sxy/librdkafka-master/src/librdkafka.so.1 librdkafkaXXXXXXXX.so.1
ll
########################################################
验证
#! /usr/bin/python

-- coding: UTF-8 --

import sys
import json
import os

from confluent_kafka import Producer

conf = {‘bootstrap.servers’: ‘host-10-:6667,host-10-:6667,host-10-:6667’,
‘security.protocol’: ‘sasl_plaintext’,
‘sasl.kerberos.principal’: ‘-oneshare@HADOOP.COM’,
‘sasl.kerberos.keytab’: ‘/Users/sxy/Documents/cfp/smokeuser.headless.keytab’,
‘sasl.kerberos.service.name’: “op”,
‘group.id’: ‘testgroup999’}

print(conf)

Create Producer instance

p = Producer(**conf)

print(“######################”)
print§

def acked(err, msg):
“”“Delivery report callback called (from flush()) on successful or failed delivery of the message.”“”
if err is not None:
print(“failed to deliver message: {}”.format(err.str()))
else:
print(“produced to: {} [{}] @ {}”.format(msg.topic(), msg.partition(), msg.offset()))

p.produce(‘test’, value=‘python test value’, callback=acked)

print(“2######################”)
p.flush()

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值