【Python】如何在服务器上优雅的部署Python项目(Linux/Windows/Mac)

这篇具有很好参考价值的文章主要介绍了【Python】如何在服务器上优雅的部署Python项目(Linux/Windows/Mac)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.venv独立运行环境(虚拟环境)

一般每个不同的项目都会依赖各自的库,有些库的版本不一样会引起冲突,为了解决这个问题,需要使用虚拟环境,Python可以在每个项目目录下创建各自的虚拟环境项目所依赖的包就在当前目录环境下,这样避免了库版本的冲突,也方便相同操作系统间可以快速的拷贝项目运行。

  • Python3.3 版本开始,自带一个venv名令, 无需手动安装
    • 但Python2、Python3.3之前的版本没有自带venv,需要使用pip手动安装virtualenv
      pip install virtualenv  # 安装python2对应pip版本的virtualenv  
      pip3 install virtualenv  # python3对应pip版本的virtualenv  
      

二.如何实现

  1. 创建目录,这里把venv命名为test101env,因此目录名为test101env:

    [root@robot-DOM-server test]# mkdir test101env
    [root@robot-DOM-server test]#  cd test101env/
    [root@robot-DOM-server test101env]#
    
  2. 第二步,创建一个独立的Python运行环境:

    [root@robot-DOM-server test101env]# python3 -m venv .
    

    查看当前目录,可以发现有几个文件夹和一个pyvenv.cfg文件:

    ls
    

    python项目部署linux,Python,服务器,python,linux,虚拟环境,veev

    • 命令python3 -m venv <目录>可以创建一个独立的Python运行环境

      • 观察bin目录的内容,里面有python3、pip3等可执行文件,实际上是链接到Python系统目录的软链接
        python项目部署linux,Python,服务器,python,linux,虚拟环境,veev
    • 继续进入bin目录Linux/Macsource activateWindowsactivate.bat激活该venv环境:

      source activate
      

      python项目部署linux,Python,服务器,python,linux,虚拟环境,veev

  • 注意到命令提示符变了,有个(test101env)前缀,表示当前环境是一个名为test101env的Python环境。
    python项目部署linux,Python,服务器,python,linux,虚拟环境,veev
  1. 正常安装各种第三方包,并运行python命令:

    python项目部署linux,Python,服务器,python,linux,虚拟环境,veev
    pip3 install jinja2

  2. 运行python命令

    (test101env) [root@localhost bin]# python3
    Python 3.6.8 (default, Nov 16 2020, 16:55:22) 
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import jinja2
    >>> exit()
    

    python项目部署linux,Python,服务器,python,linux,虚拟环境,veev

    • venv环境下,用pip安装的包都被安装到test101env这个环境下,具体目录是test101env/lib/python3.x /site-packages,因此,系统Python环境不受任何影响。也就是说,test101env环境是专门针对test101这个应用创建的。
  3. 退出当前的test101env环境,使用deactivate命令:

    deactivate
    
    • 此时就回到了正常的环境,现在pip或python均是在系统Python环境下执行。
      python项目部署linux,Python,服务器,python,linux,虚拟环境,veev

三.原理

venv是如何创建“独立”的Python运行环境的呢?

  • 原理很简单,就是把系统Python链接或复制一份到venv的环境,用命令source activate进入一个venv环境时,venv会修改相关环境变量,让命令python和pip均指向当前的venv环境

如果不再使用某个venv,如何删除?

  • 例如test101env,删除它也很简单。首先确认该venv没有处于“激活”状态,然后直接把整个目录test101env删掉就行

小结

  • venv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题

如何优雅的部署Python应用到Linux服务器?

四.在Linux服务器上简单部署一个Python项目

1.安装Python3环境

安装Python3环境

2.部署python应用

1. 将本地开发环境的依赖项目生成清单文件

  • 在项目所在目录执行命令:pip freeze > requirements.txt

  • 将当前项目使用的python解释器中的依赖包保存到requirements.txt 文件中

    • 清单文件将会生成在当前项目目录下,内容如下所示:
      python项目部署linux,Python,服务器,python,linux,虚拟环境,veev

2.将Python项目上传到服务器

3.为项目创建虚拟环境

  • 将项目拷贝至服务器上后,进入项目文件中,用命令:python -m venv env_name 创建虚拟环境
    • 其中env_name 为虚拟环境的名称

      注意:Python2、Python3.3之前的版本需要使用pip手动安装virtualenv,创建虚拟环境命令为 python -m virtualenvenv_name

  • 启动创建的虚拟环境:通过命令 source 环境名称/bin/activate ,虚拟环境激活之后,对应的环境名会出现在命令行
  • 关闭虚拟环境的命令deactivate
    python项目部署linux,Python,服务器,python,linux,虚拟环境,veev

4.安装对应项目的依赖包

  • 虚拟环境启动之后,在虚拟环境中安装我们对应项目的依赖了,命令:
    pip3 install -r requirements.txt安装项目的依赖包(requirements.txt为项目收集的依赖包地址)

    • 执行下载requirements文件内依赖名命令
      python项目部署linux,Python,服务器,python,linux,虚拟环境,veev
    • 当前虚拟环境存放在已下载好的
      python项目部署linux,Python,服务器,python,linux,虚拟环境,veev
  • 如果对应的Linux环境中未配置国内镜像源,导致依赖包安装缓慢,可以通过命令
    pip install -i 国内镜像源地址 -r requirements.txt 安装项目依赖包

    • 如果没有requirements.txt,也可以直接使用命令: pip install 第三方库名 进行安装

5.运行主程序文件文章来源地址https://www.toymoban.com/news/detail-848023.html

  • 在虚拟环境可以直接通过命令:python xx.py 运行程序文件,但是该命令无法让主程序文件处于后台运行状态,一旦关闭会话页面,程序就会停止
  • 为了让程序能够在后台运行,可以使用命令:nohup python xx.py,该命令可以让程序文件处于后台运行 状态,并且能够将运行日志收集到nohup.out文件中。

到了这里,关于【Python】如何在服务器上优雅的部署Python项目(Linux/Windows/Mac)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用Docker将.Net6项目部署到Linux服务器(一)

    目录 一 配置服务器环境 1.1 配置yum                                                                                                                     1.1.1 更新yum包 1.1.2 yum命令 1.2 配置docker                                                           

    2024年02月04日
    浏览(39)
  • 如何使用FinalShell远程连接工具优雅的远程连接Linux操作系统的服务器

            随着互联网的发展,越来越多的人需要远程访问和管理远程服务器或计算机。远程连接工具应运而生,以满足人们的远程访问需求。远程连接工具可以让用户远程登录到其他计算机或服务器,并执行各种操作,而无需身处物理位置。这极大地便利了用户,节省了时

    2024年02月03日
    浏览(59)
  • 在Linux服务器上部署Tornado项目

    1、准备服务器: 确保你的服务器上安装了Python。Tornado通常与Python 3兼容,因此建议安装Python 3.x。 安装和配置一个Web服务器,如Nginx或Apache,以用作反向代理,将请求传递给Tornado应用。这有助于提高性能并增加安全性。 配置域名和DNS,以便将域名解析到服务器的IP地址(如果

    2024年02月09日
    浏览(34)
  • 【前端部署】vue项目打包并部署到Linux服务器

    在vs code中打开vue前端项目文件夹,在终端中输入 npm run build ,打包完成后,在前端项目文件夹中会生成一个名为 dist 的文件夹,如下图所示: dist文件夹打开如下所示: 打开服务器终端,在终端中输入以下命令,下载nginx安装包。 其中nginx版本可以自己选择,具体版本可查看

    2024年02月06日
    浏览(51)
  • 前端如何将项目打包部署到服务器

      本篇文章从前端项目打包开始,逐步完成项目部署到服务器的操作,这次咱们采取的部署方案是通过vscode中Remote-SSH和SFTP两个插件实现项目部署到服务器,并在服务器上通过nginx代理将请求转发到对应的端口。   先将自己开发完成的本地项目进行打包,打包之后会产生一个

    2024年03月14日
    浏览(55)
  • Linux环境下部署项目到服务器完整过程

    1,首先,选择一款云上服务器(这里用的是腾讯云),右侧搜索栏输入云服务器或轻量服务器(这里用的轻量服务器),立即选购 2,选择自己要的服务器配置,系统镜像选择Centos即可 3,实例创建成功后,点击控制台搜索请量服务器找到新创建的实例重置密码 4,点击防火墙

    2024年02月02日
    浏览(39)
  • 如何把本地flask项目(框架)上传到服务器(Linux),并后台持续运行(包括requirements文件生成,python项目与域名绑定,保姆级教程)

     2023年中旬,参加了一个比赛,需要搭建一个网站。在不断探索琢磨之后,搭建了一个基于flask的web。直接上干货: 一、首先,在本地准备好自己的flask项目。包括最基本的三个文件: 然后准备生成requirements.txt文件,这个文本文件会告诉服务器你的项目运行所需要的环境,即

    2024年02月04日
    浏览(43)
  • 如何将项目部署到服务器上(全套教程)

    点赞再看,养成习惯,本文介绍如何将本地项目部署到服务器上永久运行。 目录 开场白 一、购买服务器 二、用Xshell连接服务器 三、安装Java环境 四、安装宝塔面板  五、部署 总结 在写毕业设计的过程中,小花好不容易毕业设计做完了。 但是,指导老师突然说答辩需要演示

    2024年01月19日
    浏览(77)
  • 前端如何将项目部署到服务器(Nginx)

    我们在会开发项目的同时,也应该了解一下前端是如何部署项目的; 使用Xshell连接服务器,既然想要在服务器上面放静态资源,像HTML,js等,就需要安装静态资源服务器。静态资源服务器有Apache和Nginx,这里我们选用nginx。 找到安装包Nginx安装路径,并在目录下进行解压。 进

    2024年02月01日
    浏览(40)
  • 将 .net core 项目部署到 Linux服务器

    目录 1、前言 2、安装 .NET SDK 或 .NET 运行时 3、创建数据库 4、发布项目到Linux环境 5、配置Nigix 6、Nginx配置Https 7、安装Supervisor 1、前言 部署服务器:阿里云的CentOS 7.6 64位 发布项目:.Net Core 5.0 数据库:MySql 5.8  其他:Nginx,Supervisor 2、安装 .NET SDK 或 .NET 运行时 参考官网网址

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包