怎么实现把虚拟环境打包,然后在另一台服务器上解压后即可运行

2024-02-21 13:07:19 +08:00
 liuhuansir

搜索了一上午,还是不知道如何实现这一需求,场景是两台相同的服务器,在一台上安装了 python3 ,创建了虚拟环境,现在想把这个环境打成 tar.gz 包,复制到另外一台没装 python3 的服务器上解压运行

6197 次点击
所在节点    Python
57 条回复
xwwsxp
2024-02-21 13:11:50 +08:00
Docker 不就行了
gcc1117
2024-02-21 13:12:57 +08:00
同好奇,详细怎么操作。看到网上共享的那些一键启动的工具应该就是把 python 执行文件还有 venv 的库文件都放在一起就可以了,但自己没有试过不知道有没有什么坑。
foolishcrab
2024-02-21 13:14:13 +08:00
Docker 不就行了
bao3
2024-02-21 13:14:46 +08:00
这种情况用 docker container 或者 lxc /jail 之类的是最方便的
FlytoSirius
2024-02-21 13:16:43 +08:00
你提的这个场景, 本就不应该在这个层面去实现.
应该由下层的 " VM 或 容器" 去实现应用依赖环境管理和灵活部署.
liuhuansir
2024-02-21 13:22:26 +08:00
@gcc1117 我司有个产品就是这种发布形式,是其他组的产品,我问了一些人,没问到实现方式
nyfwan123
2024-02-21 13:27:23 +08:00
poetry
dongtq
2024-02-21 13:35:05 +08:00
conda?
longbow0
2024-02-21 13:36:03 +08:00
conda 提供了具体的方法
longbow0
2024-02-21 13:36:09 +08:00
liuhuansir
2024-02-21 13:39:13 +08:00
@longbow0 谢谢,我试试看
idontnowhat2say
2024-02-21 13:41:42 +08:00
以下没有完全求证,个人猜测。

如果另一台装了 相同版本的 Python ,直接把 venv 目录拷贝过去应该就能运行了,前提是没有 pip 包依赖什么没有预装的 C 动态 so 文件。

如果另外一台没有装 Python ,可以试试看 https://github.com/marcelotduarte/cx_Freeze 这个可以把整个 Python 打包成可执行文件。
lizytalk
2024-02-21 13:54:13 +08:00
docker
edwinyzhang
2024-02-21 14:01:27 +08:00
container
1018ji
2024-02-21 14:05:11 +08:00
路径需要相同,不然就完犊子
mMartin
2024-02-21 15:42:28 +08:00
conda +1
dif
2024-02-21 16:35:07 +08:00
conda pack
pollux
2024-02-21 17:18:40 +08:00
zipapp +1
mumbler
2024-02-21 17:27:12 +08:00
我们用的方法是把服务器做 ghost 镜像,到另一台恢复
Tink
2024-02-21 17:37:23 +08:00
docker

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1017166

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX