找回密码
 会员注册
查看: 18|回复: 0

python部署linux

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
70601
发表于 2024-9-10 00:51:44 | 显示全部楼层 |阅读模式
python项目做完了,就涉及到了部署,windows可以打包exe,linux如何部署呢?部署Python的打包部署方式有多种,具体取决于项目的需求、规模以及所使用的工具。以下是几种常见的Python打包部署方式:使用pip安装:对于小型的Python库或工具,通常可以直接通过pip进行安装。这种方式下,开发者会将代码打包成Python的wheel或sourcedistribution格式,然后上传到PyPI(PythonPackageIndex)或其他包管理器中。用户可以通过pipinstall命令直接安装这些包。虚拟环境:为了避免不同项目之间的依赖冲突,开发者通常会使用虚拟环境(如venv或conda)来隔离每个项目的依赖。在虚拟环境中,可以安装项目所需的特定版本的Python解释器和依赖库。容器化部署:对于更复杂的应用,可以使用Docker等容器化技术来打包和部署Python应用。通过Docker,可以将Python应用及其所有依赖项打包到一个可移植的容器中,然后在任何支持Docker的环境中运行该容器。这种方式的好处是简化了部署过程,并确保了应用在不同环境中的一致性。直接上传代码到Linux启动:有时,为了快速部署或调试,开发者可能会选择直接将代码上传到Linux服务器并启动。这种方式简单直接,但可能存在一些问题。例如,没有使用虚拟环境可能导致依赖冲突;没有明确的打包和部署流程可能导致版本控制混乱;直接在服务器上编辑和运行代码也可能增加安全风险。选择哪种打包部署方式取决于项目的具体需求。对于小型项目或快速原型开发,直接上传代码到Linux启动可能是一个可行的选择。但对于大型、复杂的项目或需要确保一致性和安全性的项目,使用更正规的打包和部署流程(如pip安装、虚拟环境或容器化部署)通常是更好的选择。总的来说,Python的打包部署方式灵活多样,可以根据项目的需求选择最适合的方式。同时,为了确保项目的稳定性和安全性,建议遵循良好的代码管理和部署实践。具体直接上传代码部署,测试环境可以这么干,不过建议还是使用docker容器化部署配置SFTP增加ssh部署路径排除日志增加密钥也可以使用账号密码的方式启动需要有python的环境编译环境yuminstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgccmake1源码下载wgethttps://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz1解压tar-JxvfPython-3.9.5.tar.xz-C/usr/local1安装cd/usr/local/Python-3.9.5/./configure--prefix=/usr/local/Python-3.9.5123编译make&makeinstall1测试是否成功/usr/local/Python-3.9.5/bin/pip3listpython-V123软连接mvpythonpython.backln-s/usr/local/Python-3.9.5/bin/python3.9/usr/bin/python123生成清单文件pip3freeze>requirements.txt1上传项目到linux部署虚拟环境pip3installvirtualenv1修改源cd/root/.pip&vim./pip.conf如果没有提供启动命令0.0.0.0才能让外部访问创建虚拟环境python3-mvenvmyenvsourcemyenv/bin/activate#在Unix或MacOS上myenv\Scripts\activate#在Windows上123缺啥模块,就下载啥模块pipinstalldjango1启动python3manage.pyrunserver0.0.0.0:84011后台启动在后台启动Django的开发服务器,你可以使用多种方法,因为默认情况下,pythonmanage.pyrunserver会将命令行窗口绑定到该进程,使得你不能在后台运行它或者关闭命令行窗口。以下是几种在后台启动Django开发服务器的方法:使用nohup和&(Linux/Unix/macOS)在命令行中,你可以使用nohup和&将进程放到后台运行:bashnohuppythonmanage.pyrunserver0.0.0.0:8401&1这会启动服务器并在后台运行,即使你关闭了命令行窗口,服务器也会继续运行。所有的输出都会被重定向到一个名为nohup.out的文件中(除非你在命令中指定了其他文件)。使用screen或tmux(Linux/Unix/macOS)screen和tmux是终端复用器,它们允许你在一个终端会话中运行多个终端,并将它们分离到后台。例如,使用screen:bashscreen-Sdjango_serverpythonmanage.pyrunserver0.0.0.0:8401然后按Ctrl+A,然后按D来分离会话之后,你可以通过screen-rdjango_server重新连接到该会话。使用第三方工具,如gunicorn或uWSGI虽然这些不是开发服务器的解决方案,但它们在生产环境中非常有用,并且它们支持以守护进程(daemon)模式运行。然而,它们也可以用于开发环境。例如,使用gunicorn:首先,你需要在项目的requirements.txt文件中添加gunicorn。然后,你可以使用以下命令启动它:bashgunicornyour_project.wsgi:application--bind0.0.0.0:8401--daemon注意:–daemon选项使gunicorn在后台运行。但请注意,gunicorn主要是为生产环境设计的,而不是开发环境。使用Windows的服务或计划任务(Windows)在Windows上,你可以使用服务或计划任务来在后台运行Python脚本,但这通常比在Linux/Unix/macOS上更复杂。使用IDE的内置功能(如PyCharm)一些集成开发环境(IDE),如PyCharm,允许你以调试模式或常规模式在后台运行Django服务器。你可以查看IDE的文档以了解如何执行此操作。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-8 12:24 , Processed in 0.877860 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表