本地python项目打包部署到服务器
创始人
2025-01-20 10:32:07
0次

#记录项目经验,复盘

前提:已经有简单的python项目

目录

一、服务器上搭建相应的python环境

1、Chrome下载和安装

2、Chromedriver下载和安装

二、本地打包并上传

1、项目依赖包打包

①freeze 控制台输入如下命令行

②pipreqs 

2、上传到服务器

3、安装程序依赖

三、运行python脚本

遇到问题:

参考资料:


一、服务器上搭建相应的python环境

python安装环境不记录了,记录一下Chrome和Chromedriver的下载和安装

1、Chrome下载和安装

wget  https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

下载后解压,查看版本检查是否安装成功

yum install ./google-chrome-stable_current_x86_64.rpm

google-chrome --version

(安装成功后可将安装包删除)

2、Chromedriver下载和安装

下载并解压

114之前版本地址:https://chromedriver.storage.googleapis.com/index.html

114之后版本地址:Chrome for Testing availability 

wget  下载地址  unzip chromedriver_linux64.zip  mv chromedriver /usr/bin/  chmod +x /usr/bin/chromedriver  chromedriver --version

二、本地打包并上传

1、项目依赖包打包

①freeze 控制台输入如下命令行

使用pip freeze 或者pip list 都可以查看当前系统安装的包,只是格式不一样

pip freeze > requirements.txt

②pipreqs 

方法1会将项目所有依赖都记录,即使这个包没有用到;使用pipreqs可以只打包这个程序中用到的

安装:控制台pip install pipreqs

使用:切换到项目根目录——打开控制台——

# --encoding=utf8   调整编码格式,没有设置运行提示异常['gbk' codec can't...],可以在pipreqs.py文件的75行,将encoding修改为utf-8 # --force  强制覆盖,没有这个参数会提示文件已存在,执行会覆盖原文件 pipreqs . --encoding=utf8 --force

两个方法都可以生成requirements.txt,这个就是依赖的包

2、上传到服务器

打开本地控制台,输入如下命令行:

# 上传本地文件到服务器 scp -r testcase root@ip:/home/test scp :        命令 -r :         本地地址下的目录(包括该目录下的目录和文件),若省略则只上传一个文件 testcase:   要上传的文件/目录 的路径(因为控制台已经切换到项目路径,所以没有写全路径,直接用的当前文件) root@ip:     服务器的用户名和ip(后边的:不能省略) /home/test : 服务器上目的路径(可以在服务器上用pwd命令查看当前路径) 端口号-p:    若在端口号则在-r后添加-p

3、安装程序依赖

pip3 install -r requirements.txt

安装完成后可以查看相应的版本检查是否安装成功

三、运行python脚本

本地正常运行的py脚本,到服务器上还需要将浏览器改成无头模式,因为服务器上没有图形界面

# 设置浏览器为无头模式 options = webdriver.ChromeOptions() options.add_argument("no-sandbox") options.add_argument("--disable-extensions") options.add_argument("--headless") driver = webdriver.Chrome(chrome_options=options)

 等待提示运行完成后,登陆相应系统,可以看到相应订单已生成

遇到问题:

1、Chromedriver地址无法下载,关闭防火墙等安全设置后仍无法下载,可以在服务器中用命令下载尝试(实际操作过程中,windows浏览器下载失败,第二天wget下载成功了,纯运气)

2、无头模式设置因为不同的版本语法有差异,可按照提示信息或网络查询修改

3、Chrome无法启动,提示The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.;解决办法见下方参考资料链接,原因参考驱动和Chrome版本不一致或者脚本执行不能用root,设置options.add_argument("no-sandbox")不合理;  当前脚本能运行,两种参考原因没有实际测试过

参考资料:

linux下安装chrome及chromedriver和卸载操作 - 知乎     

华为云云耀云服务器L实例评测|Python Selenium加Chrome Driver构建UI自动化测试实践_华为ui自动化测试工具-CSDN博客                                                                                  ------------服务器安装Chrome和Chromedriver

linux命令scp将本地文件上传到服务器_scp 上传-CSDN博客      ----------服务器上传/下载文件  

https://blog.51cto.com/u_16213451/7617854                         --------------python程序上传到服务器

从chrome位置/usr/bin/google-chrome启动的进程不再运行,因此ChromeDriver假定Chrome已经因为Selenium而崩溃-腾讯云开发者社区-腾讯云    snapshot_selenium 报错 The process started from chrome location /usr/bin/google-chrome is no longer-CSDN博客linux - unknown error: DevToolsActivePort file doesn't exist error while executing Selenium UI test cases on ubuntu - Stack Overflow                                                                                            -----浏览器无头模式无法启动问题修改

相关内容

热门资讯

推荐一款!阿拉斗牌开挂功能方法... 推荐一款!阿拉斗牌开挂功能方法,阿拉斗牌其实真的有开挂方法1、阿拉斗牌免费脚本咨询教程、阿拉斗牌免费...
记者揭秘!吉祥填大坑辅助器功能... 记者揭秘!吉祥填大坑辅助器功能攻略,吉祥填大坑切实真的是有辅助器攻略亲,关键说明,吉祥填大坑透视脚本...
今日百科!271透视挂功能软件... 今日百科!271透视挂功能软件,271都是是有透视挂软件1、玩家可以在271透视最简单三个步骤对游戏...
记者爆料!慕雪娱乐透视功能神器... 记者爆料!慕雪娱乐透视功能神器,慕雪娱乐本来是真的有透视神器1.慕雪娱乐 选牌创建新账号,点击进入游...
每日必备!新奇玩乐透视挂功能神... 每日必备!新奇玩乐透视挂功能神器,新奇玩乐切实真的是有透视挂神器暗藏猫腻,小编详细说明新奇玩乐破解器...
重大来袭!九五娱乐透视挂功能方... 重大来袭!九五娱乐透视挂功能方法,九五娱乐其实存在有透视挂方法一、九五娱乐游戏安装教程牌型概率发牌机...
分享个大家!残局斗地主开挂功能... 分享个大家!残局斗地主开挂功能脚本,残局斗地主一贯是有开挂脚本1、下载好残局斗地主脚本下载之后点击打...
研究成果!澳门新葡京透视挂功能... 研究成果!澳门新葡京透视挂功能教程,澳门新葡京切实是有透视挂教程1)澳门新葡京有没有挂:进一步探索澳...
玩家必看科普!福运到2辅助器功... 玩家必看科普!福运到2辅助器功能神器,福运到2总是真的有辅助器神器1、福运到2辅助器安装包、福运到2...
三分钟了解!心动麻将透视挂功能... 三分钟了解!心动麻将透视挂功能技巧,心动麻将果然是真的有透视挂技巧心动麻将破解侠是真的助透视。每个模...