LOADING

分类 python 下的文章

#首先拉取jenkins镜像
docker pull jenkins/jenkins

#以root身份运行镜像

docker run -d -uroot -p 9077:8080 -p 50000:50000 --name jenkins -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime jenkins/jenkins

#通过ip加端口号进入jenkins 127.0.0.1:9077

jenkins

#切换进入docker镜像
docker exec -it d1949b69ce49  bash 
#编辑密码所在文件 获取密码
cat /var/jenkins_home/secrets/initialAdminPassword

安装推荐的插件
jenkins2.png
安装必备的插件,在jenkins插件中搜索

Generic Webhook Trigger
GitLab
#服务器安装expect
apt install expect

在jenkins搜索栏输入Manage搜索,选择系统管理
需要在Jenkins系统设置中取消勾选“Enable authentication for '/project' end-point”
jenkins4.png
新建一个jenkins任务,选择第一个
jenkins3.png
进入任务配置,构建触发器选择入下图所示
jenkins5.png
构建步骤输入以下脚本

#!/usr/bin/expect
#web服务器
spawn ssh root@127.0.0.1
expect {
 "(yes/no*" {send "yes\r";exp_continue}
 "password:" {send "pwd\r";exp_continue}
 eof
}
expect "*]$"
send "su root\n"
expect "*password"
send "pwd\n"
expect "*]$"
send "cd /var/www/project\n"
expect "*]#"
send "git pull\n"
expect "*]#"
send "exit\n"
expect "*]#"

多台服务器配置多个脚本链接,保存
登录你的gitlab

添加插件

# 取值必须values
 query_data = Model.objects.filter().values('id')
# 返回必须转一次list
 return JsonResponse(list(data),safe=False)

感觉django没有吹得那么好,orm转个json这么费劲

import copy
from prettyprinter import cpprint as p

        campaign_bigo_no = campaign_bigo = {
            'cpm': 0,
        }
        #  默认是传引用
        campaign_bigo['cpm'] = 1
        p(campaign_bigo_no)
        p(campaign_bigo)
        #  传值
        campaign_bigo_no = copy.deepcopy(campaign_bigo)
        campaign_bigo['cpm'] = 1
        p(campaign_bigo_no)
        p(campaign_bigo)

linux下python版本升级
1、下载python版本

  wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

2、编译,防止出现安装错误

  yum install gcc-c++ gcc make cmake zlib-devel bzip2-devel openssl-devel ncurse-devel -y

3、3.7版本需要一个新的包libffi-devel,安装此包之后再次进行编译安装即可

  yum install libffi-devel -y

4、解压与创建

  tar -zxvf Python-3.7.2.tar.xz
  #进入python3.7.2目录
  cd Python-3.7.2
  #创建目录
  mkdir -p /usr/local/python3
  #配置(指定安装目录)
  ./configure --prefix=/usr/local/python3 --enable-optimizations

5、编译与安装

  make && make install ,使用sudo命令时,记得make 和make install 都要有

6、更换版本,创建新版本Python3.7的软链接

  ln -s /usr/local/python3/bin/python3.7 /usr/bin/python

  先看下软链接,系统版本多的话,有可能会创建软链接失败,我就失败了。

7、查看是否成功

  python -V ,能看到新的版本证明成功

优先安装 uwsgi 用于接受nginx转发来的请求

pip3 install uwsgi

在项目目录下新建 uwsgi.ini

[uwsgi]
socket=127.0.0.1:9090 #接受nginx转发来的请求
chdir=/Applications/MAMP/htdocs/python_all_rivers #项目目录
module=reptlie.wsgi:application #wsgi文件目录
max-requests=5000 #最大请求数
daemonize=/var/log/yourproject.log #log文件地址 启动失败等日志都在里面

启动 uwsgi 切换到uwsgi.ini文件目录 载入配置方式启动

uwsgi --ini uwsgi.ini

查看是否启动

ps aux|grep uwsgi

root      295550  2.2  0.9  50184 38108 ?        S    14:48   0:00 uwsgi --ini reptlie/uwsgi.ini
root      295554  0.0  0.0   9032   728 pts/0    S+   14:48   0:00 grep --color=auto uwsgi

如需关闭 kill掉当前uwsgi pid

nginx配置


server {
            listen       80;
            server_name  python.allreviers.com;#你自己的域名

            location / {
                uwsgi_pass  127.0.0.1:9090;              #必须和uwsgi中的设置一致
                include  uwsgi_params;
                index  index.html index.htm;
                client_max_body_size 35m;
            }
        }

重启nginx即可
注:每次修改python文件后都需要kill掉 uwsgi 重新载入配置启动

如果是crontab 执行 python selenium 的话 会出现一个因为环境变量引起的报错
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
解决方案是命令行改成

export DISPLAY=:0.0 && /usr/local/bin/python3.7 /srv/project/manage.py report >> /var/log/csj_login.log # django-cronjobs for priject

在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上

  1. 下载指定版本下文中以3.7.3为例
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
  1. 解压
tar zxvf Python-3.7.3.tgz
  1. 切换目录
cd Python-3.7.3
  1. 编译
./configure --with-ssl
make
sudo make install
–with-ssl必须加上,否则使用pip安装第三方包时,会引发ssl错误。导致无法使用
  1. 安装python依赖
sudo apt-get install python-dev python-setuptools python-pip python-smbus build-essential libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev
  1. 添加软连接 (方便区分不同版本)

添加python3的软链接

sudo ln -s /usr/local/bin/python3.7 /usr/bin/python3.7

添加 pip3 的软链接

sudo ln -s /usr/local/bin/pip3.7 /usr/bin/pip3.7