V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zeromovie
V2EX  ›  Python

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

  •  
  •   zeromovie · 261 天前 · 2117 次点击
    这是一个创建于 261 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    14 条回复    2024-03-22 17:35:52 +08:00
    bitmin
        1
    bitmin  
       261 天前
    用 poetry pyproject.toml ?
    uliah
        2
    uliah  
       261 天前
    代码最终是运行在 Linux 上,推荐尝试 windows wsl || vms;
    代码需要跨平台运行,推荐尝试 go;

    DEVOPS 处理的一个典型问题:"我本地好好的,为什么到服务器就报错?"
    winterpotato
        3
    winterpotato  
       261 天前
    我想的也是 requirements.txt pyproject.toml 这类的:-)
    thinkershare
        4
    thinkershare  
       261 天前
    没有什么办法。
    jiayouzl
        5
    jiayouzl  
       261 天前
    我肯定选 docker
    peanutBark
        6
    peanutBark  
       261 天前
    poetry + docker. 完美解决问题
    kdwycz
        7
    kdwycz  
       261 天前
    wsl2 就不用迁移了,甚至 wsl2 能优雅的在不同的 windows 中迁移
    ClericPy
        8
    ClericPy  
       261 天前
    https://pypi.org/project/zipapps/
    用 -d 模式, 把依赖和源码打包成几十 KB 的玩意, 两边机器只要搞定解释器, 然后在目标机器上现安装依赖
    laqow
        9
    laqow  
       261 天前
    可能直接按包的方式开发,分发成不同的 wheel
    Jirajine
        10
    Jirajine  
       261 天前
    Rye, rustup + cargo for python
    https://rye-up.com/
    tomczhen
        11
    tomczhen  
       261 天前
    如果是开发的目的,poetry ,pipenv 这些都可以。如果是分发为目的,纯 Python 或者有 wheels 的包,可以用,pip 的--platform 参数指定平台,然后使用 zipapp 的相关工具 shiv 这些的可以打出一个 pyz 包,使用起来和 jar 包类似。没有 wheels 或者有动态依赖,或者依赖本身绑定平台,我是懒得去研究怎么解决了。
    XXWHCA
        12
    XXWHCA  
       261 天前
    我为什么没有 get 到点,requirements.txt pyproject.toml 不就是做这个的吗,固定版本号,那什么 os 下都一样啊。然后 python 版本 可以用 pyenv 直接切换,怎么会存在差异变化呢。
    jfcherng
        13
    jfcherng  
       260 天前
    @XXWHCA 如果某個版本號在某個平台下無法安裝呢
    craiiz
        14
    craiiz  
       257 天前
    @XXWHCA ai 大模型火了之后,玩了许多项目感觉 requirements.txt 和 pyproject.toml 并不能完全重现依赖环境,绝大部分都要按着项目里的 rq.txt 先装一遍,然后一个冲突一个冲突逐个解决....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5025 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:54 · PVG 11:54 · LAX 19:54 · JFK 22:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.