Linux下Python环境离线搭建,离线下载包,gcc,python相关依赖包,oracle-client,简体中文,cx_Oracle,pip3升级,shell脚本启动

好几年没写博客了,有时想找个技术学习,写写博客。但是现在技术更新太快,想到这,又不想研究了。遇到什么学什么。还是自己懒吧。以后还是找点技术研究,学习下,写写博客。

刚好公司做了一个python项目,需要部署在公司内网linux环境中,领导让我研究下。就有了这篇博客了。

话不多说了,本机装个虚拟机centos7.5,这个网上有很多。可以找找。

安装gcc等编译环境,局域网yum安装不了,只能先网上yum安装的时候下载下来。

下载需要修改/etc/yum.conf 文件,把keepcache这个值由0改为1

然后再yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

安装完成后,rpm缓存目录/var/cache/yum/x86_64/7/base/packages 这个里面,接着上传到内网中

cd到上传目录

rpm -Uvh *.rpm --nodeps --force进行安装

验证gcc -v

上传Python-3.6.0.tgz至opt目录

cd /opt

tar zxvf Python-3.6.0.tgz

cd Python-3.6.0/

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

make

make install

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

python3 -V可能需要切换到python以前的版本

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

pip3 -V 

升级pip3,上传包pip-20.1.1.tar.gz

tar -zxvf pip-20.1.1.tar.gz

cd pip-20.1.1

python3 setup.py build

python3 setup.py install

取得我们开发项目时所有需要的python依赖包

pip3 freeze >requirements.txt

下载依赖包
pip3 download -r requirements.txt

上传下载好的依赖包
cd /site-packages
加载依赖
pip3 install --no-index --find-links=/site-packages -r requirements.txt

升级sqlite,上传sqlite-autoconf-3290000.tar.gz
tar zxvf sqlite-autoconf-3290000.tar.gz

cd sqlite-autoconf-3290000

./configure --prefix=/usr/local

make && make install

最新安装的sqlite3版本
/usr/local/bin/sqlite3 --version

Centos7自带的sqlite3版本
/usr/bin/sqlite3 --version

更改旧的sqlite3
mv /usr/bin/sqlite3  /usr/bin/sqlite3_old
创建软连接ln -s /usr/local/bin/sqlite3   /usr/bin/sqlite3
sqlite3 --version

将路径传递给共享库,设置开机自启动执行
vim ~/.bashrc
export LD_LIBRARY_PATH="/usr/local/lib"

source ~/.bashrc 立即生效

验证
python3
import sqlite3
sqlite3.sqlite_version
exit()

上传简体中文安装包

rpm -Uvh *.rpm --nodeps --force

echo $LANG
locale
vim /etc/locale.conf
LANG=zh_CN.UTF8
rpm -ivh convmv-1.15-2.el7.noarch.rpm
convmv -f gbk -t utf-8 -r --notest /home/shenk/price_predict/field

上传oracle-client
安装oracle 客户端
rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm 
配置
vim ~/.bash_profile
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export ORACLE_BASE=/usr/lib/oracle/11.2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin
source ~/.bash_profile
/usr/lib/oracle/11.2/client64 目录新建 /network/admin目录
把tnsnames.ora文件上传上去

验证
sqlplus slhy/slhy@orcl
sqlplus wzjc/wzjc@orcl

上传cx-oracle,安装
tar -xzvf cx_Oracle-5.3.tar.gz
cd  cx_Oracle-5.3
python3 setup.py build
python3 setup.py install

验证
python3
import cx_Oracle
db = cx_Oracle.connect('slhy/slhy@orcl')
print(db.version)

打开 开放端口
firewall-cmd --zone=public --add-port=8000/tcp --permanent 
firewall-cmd --reload
firewall-cmd --zone= public --query-port=8000/tcp

编写shell脚本,通过“service”命令进行管理(start|stop|restart)

新建runServiceSlhy.sh文件,内容如下

filepath="/home/shenk/price_predict/manage.py"

start(){
    nohup python3 $filepath>/dev/null 2>&1 &
    echo 'runServiceSlhy service OK'
}


stop(){
    serverpid=`ps -aux|grep "$filepath"|grep -v grep|awk '{print $2}'`
    kill -9 $serverpid
    echo 'runServiceSlhy stop OK'
}


restart(){
    stop
    echo 'runServiceSlhy stop OK'
    start
    echo 'runServiceSlhy service OK'
}


case $1 in
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart)
    restart
    ;;
    *)
    start
esac

上传至内网服务器

sudo chmod +x runServiceSlhy.sh

./runServiceSlhy.sh start  # 启动脚本
./runServiceSlhy.sh stop  # 停止脚本
./runServiceSlhy.sh restart  # 重启脚本

/bin/bash^M: 坏的解释器: 没有那个文件或目录
这个文件在Windows 下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n
sed -i 's/\r$//' runServiceSlhy.sh 会把runServiceSlhy.sh中的行尾的\r替换为空白

写的有点杂乱,博友们勉强看看,到时我再加注释。写的好看些。如果里面内容有错误,请多多指教。其实在搭建的时候,遇到过很多问题,都一一解决了。

爱生活,爱分享,爱康宝!下篇博客准备写centos 7 中安装gitlab。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页