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

2024 年 2 月 21 日
 liuhuansir

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

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

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

如果另外一台没有装 Python ,可以试试看 https://github.com/marcelotduarte/cx_Freeze 这个可以把整个 Python 打包成可执行文件。
lizytalk
2024 年 2 月 21 日
docker
edwinyzhang
2024 年 2 月 21 日
container
1018ji
2024 年 2 月 21 日
路径需要相同,不然就完犊子
mMartin
2024 年 2 月 21 日
conda +1
dif
2024 年 2 月 21 日
conda pack
pollux
2024 年 2 月 21 日
zipapp +1
mumbler
2024 年 2 月 21 日
我们用的方法是把服务器做 ghost 镜像,到另一台恢复
Tink
2024 年 2 月 21 日
docker

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

https://www.v2ex.com/t/1017166

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

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

© 2021 V2EX