本地python项目打包部署到服务器

#记录项目经验,复盘

前提:已经有简单的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                                                                                            -----浏览器无头模式无法启动问题修改

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python项目打包部署到Linux服务器运行,需要以下几个步骤: 1. 安装Python环境:在Linux服务器上安装Python环境,确保项目中所需要的Python版本和第三方库能够被正常使用。 2. 打包Python项目:使用Python打包工具将项目打包成可部署的文件,常用的打包工具有setuptools和pyinstaller。 3. 将打包文件传输到Linux服务器:将打包好的文件通过FTP或SCP等方式传输到Linux服务器上。 4. 解压打包文件:在Linux服务器上解压打包好的文件,确保文件结构正确,文件权限设置正确。 5. 启动项目:使用Linux命令启动Python项目,如使用nohup命令可以在后台启动项目。 6. 监控日志:项目运行时可能会有错误,可以通过查看日志来进行排查和调试,建议使用日志框架如logging等来输出详细日志信息。 需要注意的是,在部署过程中需要确保Linux服务器上的Python版本和项目所需要的版本一致,否则可能会出现不兼容或者运行出错的情况。同时,还需要确保Linux服务器上有足够的空间存储项目文件和日志文件。 ### 回答2: Python作为一种高效的编程语言,运行效率高、开发效率高、可读性强、生态完善,深受广大开发者的喜爱。在开发一些小型工具、脚本、网站等项目时,我们通常会使用Python进行开发。但是当我们需要在Linux服务器部署这些Python项目时,就需要进行打包部署Python项目打包Python项目打包通常使用一些工具,如setuptools等。在使用setuptools前,首先需要创建一个setup.py文件,这个文件包含了一些元数据,例如项目名称、作者、版本、依赖等信息。接着使用setuptools将项目打包成一个可安装的tar.gz压缩包。 部署Linux服务器: 一般来说,Python项目可以部署在Linux服务器的各种环境中,例如虚拟环境、Docker容器、系统环境等。部署时我们需要考虑以下问题: 1. 安装Python环境:在Linux服务器上安装Python环境,保证能够正确的运行Python项目。 2. 安装依赖:根据Python项目的依赖文件(如requirements.txt),在服务器上安装所需的第三方库和软件包。 3. 部署项目:将打包好的Python项目上传到服务器,并解压出来。 4. 运行项目:运行Python项目,例如运行Flask应用或者Celery任务队列等。 5. 设置守护进程:在Linux服务器上将Python项目设置为守护进程,保证项目可以持续运行并在系统崩溃后自动重启。 总结: Python项目打包部署Python开发领域非常重要的一部分。Python项目打包可以使用setuptools等工具,将Python项目打包成可用的tar.gz文件。在Linux服务器部署Python项目时,要看到Python环境和依赖,上传和解压项目文件,运行项目并设置守护进程,以保证项目能够稳定地运行。 ### 回答3: 在进行 Python 项目部署前,需要进行如下准备工作: 1. 确认 Python 环境是否正确安装 在 Linux 服务器上安装 Python 环境是非常重要的,因此需要先确认 Python 是否已经安装、版本号等信息。常用的 Linux 发行版都会默认安装 Python,如果缺少可以通过安装包管理程序进行安装。 2. 安装打包工具 Python 有很多打包工具,如 setuptools、py2exe、pyinstaller 等,这些工具可以将整个 Python 项目打包成一个可执行文件,便于传输和部署。其中,我们以 Pyinstaller 为例。 3. 配置虚拟环境 虚拟环境是一个干净的、隔离的 Python 运行环境,可以根据需要创建多个,避免 Python 包的版本冲突。可以使用 virtualenv 等工具来进行配置。 4. 安装项目依赖包 Python 项目在运行时会用到许多依赖包,需要在部署前将这些包安装到虚拟环境中。可以使用 pip 等工具自动安装。 接下来,我们以 Pyinstaller 打包为例,介绍 Python 项目部署过程: 1. 安装 Pyinstaller ``` pip install pyinstaller ``` 2. 执行打包命令 ``` pyinstaller -F main.py ``` 其中,-F 参数指定将所有依赖项打包成一个单独的可执行文件,main.py 是项目入口文件名。 3. 拷贝打包文件至服务器 将生成的 dist/main 文件拷贝至服务器,即可在服务器上运行。 4. 执行代码 ``` ./main ``` 即可执行代码。 总结: 在部署 Python 项目时,需要注意以下几点: 1. 确认 Python 环境是否正确安装; 2. 安装打包工具,并执行打包命令生成可执行文件; 3. 配置虚拟环境,并安装项目依赖包; 4. 将生成的可执行文件拷贝至服务器,执行即可。 最后,需要注意及时更新依赖包版本,确保代码的稳定性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值