windows Linux 之间如何优雅的迁移 Python 环境呢?

284 天前
 zeromovie

首先想到的思路是 os a 导出 req.txt 到 os b 上,然后 os b 根据 req.txt 或者类似的依赖包文件重新安装环境,但是问题是依赖关系可能由于 os 的差异发生变化,那么一个一个包的去试感觉也太蛋疼了,有没有好的解决方案呢

2146 次点击
所在节点    Python
14 条回复
bitmin
284 天前
用 poetry pyproject.toml ?
uliah
284 天前
代码最终是运行在 Linux 上,推荐尝试 windows wsl || vms;
代码需要跨平台运行,推荐尝试 go;

DEVOPS 处理的一个典型问题:"我本地好好的,为什么到服务器就报错?"
winterpotato
284 天前
我想的也是 requirements.txt pyproject.toml 这类的:-)
thinkershare
284 天前
没有什么办法。
jiayouzl
284 天前
我肯定选 docker
peanutBark
284 天前
poetry + docker. 完美解决问题
kdwycz
284 天前
wsl2 就不用迁移了,甚至 wsl2 能优雅的在不同的 windows 中迁移
ClericPy
284 天前
https://pypi.org/project/zipapps/
用 -d 模式, 把依赖和源码打包成几十 KB 的玩意, 两边机器只要搞定解释器, 然后在目标机器上现安装依赖
laqow
284 天前
可能直接按包的方式开发,分发成不同的 wheel
Jirajine
284 天前
Rye, rustup + cargo for python
https://rye-up.com/
tomczhen
284 天前
如果是开发的目的,poetry ,pipenv 这些都可以。如果是分发为目的,纯 Python 或者有 wheels 的包,可以用,pip 的--platform 参数指定平台,然后使用 zipapp 的相关工具 shiv 这些的可以打出一个 pyz 包,使用起来和 jar 包类似。没有 wheels 或者有动态依赖,或者依赖本身绑定平台,我是懒得去研究怎么解决了。
XXWHCA
283 天前
我为什么没有 get 到点,requirements.txt pyproject.toml 不就是做这个的吗,固定版本号,那什么 os 下都一样啊。然后 python 版本 可以用 pyenv 直接切换,怎么会存在差异变化呢。
jfcherng
283 天前
@XXWHCA 如果某個版本號在某個平台下無法安裝呢
craiiz
280 天前
@XXWHCA ai 大模型火了之后,玩了许多项目感觉 requirements.txt 和 pyproject.toml 并不能完全重现依赖环境,绝大部分都要按着项目里的 rq.txt 先装一遍,然后一个冲突一个冲突逐个解决....

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

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

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

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

© 2021 V2EX