一、环境配置
(一)Anaconda虚拟环境

Anaconda默认进入虚拟环境设置(base或自行指定) (二)切换python环境
1、查看当前python环境

python --version
python3 --version 	# redhat只有python3,用上一行查不出来

2、查看系统中所有 版本都Python 的二进制文件

ls /usr/bin/python*

查询结果:

centos修改python命令指向的python版本的软连接 centos切换python版本_bash


3、非root用户修改python版本(改成python3)

alias pythnotallow=’/usr/bin/python3’

系统级修改python版本参考:

https://www.baidu.com/link?url=zWAFYwaxeVWofHtNxB2uW64dqSPnGX1zGvA88VATJoQLjPAyMyv2-GL-b0PIpmfMcKsc9XAhFVR8VEsBbdkYe_&wd=&eqid=b66ddd3f00011e76000000065ec695df

二、安装相关工具包
1、单一python环境安装工具包
注意:非root用户需要加sudo
查看已安装工具包

pip list

安装新工具包

pip install  ccxt

升级已有工具包

pip install --upgrade pip

过程中遇到pip命令失效,提示:-bash: /usr/bin/pip: No such file or directory
参考:

2、多个python版本环境安装工具包

python27 -m pip list	# python27,必须是/usr/bin/目录下python文件名
python3 -m pip list	# 多个python环境分别查看安装文件

pip下载与安装

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py   # 下载安装脚本
$ sudo python get-pip.py    # 运行安装脚本,如果要安装到python3环境下,python改成python3

安装完pip,指定环境安装工具包

python3 -m pip install pandas

总结:太折腾了,下次一定装anaconda!!!

**三、**引用本地模块
开始跑测试程序,引用模块失败

ModuleNotFoundError: No module named '_0_FUNCTION'

由于引用了自己写的一个模块,没有加到PYTHONPATH,直接在pycharm运行是没问题,因为pycharm会默认把当前project加到sys.path.但是在命令行则不会报找不到自定义模块的错误
设置项目的初始位置,在任何位置执行代码可以找到import 项目包不出错
1、查看已有默认路径,并加入项目根目录所在路径

>>> import sys
>>> print(sys.path)
>>> sys.path.append('home/clouder/workspace/pycharm/xiaohui/scripts/common')
>>> print(sys.path)

2、永久添加
在用户目录下,找到隐藏文件.bashrc 文件

cd ~
ls -a	# 查看所有文件
find -name .bashrc # 查询位置

2.1 文本编辑模式修改

vim .bashrc	# 隐藏文件,WINSCP中可能设置不显示隐藏文件
export PYTHONPATH=$PYTHONPATH:/home/ec2-user/.../program	# 注意路径拼写
# press esc
:wq	# 保存
source .bashrc

四、试运行
1、cd到.py文件所在目录
2、输入:

python3 test.py

五、不间断运行程序
1、相关命令
nohup 用途:不挂断地运行命令。
& 用途:在后台运行
-u 取消python输出缓冲,直接可以在out文件查看
“>test.out” 指定输出文件,没有则默认输出到nohup.out

nohup python3 -u test.py >test.out &

六、查看.out文件结果

tail -f nohup.out	# 查看最后几行
tail -1000 nohup.out	# 查看最后1000行

通过ctrl+c关闭显示.out文件

七、 结束不间断运行程序
1、查看进程PID

ps -ef

centos修改python命令指向的python版本的软连接 centos切换python版本_python_02


2、手动结束进程

使用kill命令与PID来结束进程

/usr/bin/kill -KILL 1

注意:程序中运行多进程并发,会出现多个PID,关闭母进程即可
3、批量结束进程

pkill -f name
批量结束进程名中带有name的进程

八、遇到问题
1、进程不明原因被终止
通过修改oom_score_adj参数,减小进程的oom_score_adj值(越小越不容易被kill,不推荐)

echo "-100" > /proc/<pid>/oom_score_adj