V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Yeoman
V2EX  ›  问与答

如何无痛升级编程语言?

  •  
  •   Yeoman · 2017-02-10 10:40:56 +08:00 · 3325 次点击
    这是一个创建于 2842 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Archlinux (虚拟机)用户
    python 升级到 3.6 然后 3.5 的包就不能直接用了,都在 /usr/lib/python3.5 里
    ruby 升级到 2.4 然后 2.3 的包也不能直接用了,都在~/.gems/ruby/2.3.0 里

    有什么自动迁移这些包的工具么?
    18 条回复    2017-02-10 19:44:40 +08:00
    xss
        1
    xss  
       2017-02-10 10:48:39 +08:00
    只能说你平时没注意你选择装的东西的依赖, 导致升级后出问题了.

    语言特性导致的问题, 只能等响应的东西更新, 或者你自己解决.

    前段时间我的桌面环境升级, 导致配置文件不兼容....改了一个星期才改好...
    dexterzzz
        2
    dexterzzz  
       2017-02-10 10:48:44 +08:00
    python 用 anaconda
    msg7086
        3
    msg7086  
       2017-02-10 12:36:15 +08:00
    Python 的不知道。 Ruby 的话,`bundle` 走起。
    asdfghji
        4
    asdfghji  
       2017-02-10 12:40:47 +08:00
    感觉 lz 的意思是依赖安装路径不对,不是版本不支持依赖啊,这样的话可以用沙盒模式解决吧
    Yeoman
        5
    Yeoman  
    OP
       2017-02-10 13:48:50 +08:00 via Android
    因为过年在家没网所以才好气,所有安装过的包其实还在,但是因为 python/ruby 升级了不去寻找老版本的包了所以出现了没有依赖的情况,所以想知道有什么方法把原来老版本的包整体迁移到新版本中去用。(直接吧 python3.5 的 site-package 复制到 3.6 里去也可以用)
    loading
        6
    loading  
       2017-02-10 13:55:11 +08:00 via Android
    楼主没用 virtualenv ,直接动系统自带 python?
    msg7086
        7
    msg7086  
       2017-02-10 14:33:10 +08:00
    很多 C 扩展的包依赖同版本的头文件,换版本直接迁移可能会出问题。
    xialdj
        8
    xialdj  
       2017-02-10 15:34:59 +08:00 via iPhone
    nvm 同有这个问题 来蹭答案
    sogood
        9
    sogood  
       2017-02-10 15:53:15 +08:00 via iPhone
    @xialdj nvm copy-package
    wellsc
        10
    wellsc  
       2017-02-10 15:54:59 +08:00
    @loading 显然应该使用 pyenv
    linhua
        11
    linhua  
       2017-02-10 17:03:09 +08:00
    这个是 包管理器不统一 的问题。 Archlinux 系统有个包管理器 pacman ,而 python 也有个包管理器 pip 。
    用 pip 安装的 python 包不能用 pacman 来管理

    你试试升级 pip 到 python 3.6 对应的版本试试
    herozhang
        12
    herozhang  
       2017-02-10 17:09:08 +08:00
    系统自带的 python 不要去用,都 virtualenv 新建环境来用吧
    要不是够折腾的, 3.x 和 2.x 的,各种依赖版本不一致的。。。
    sammo
        13
    sammo  
       2017-02-10 18:28:09 +08:00 via iPhone
    我一般不用全局的 packages ,而是每个项目建立自己的虚拟环境、搭一套完全这个项目自己的 packages 。不依赖全局的东西、全局就不会出问题 ..
    guyskk
        14
    guyskk  
       2017-02-10 18:29:01 +08:00 via Android
    重新安装一下吧
    python3.5 -m pip freeze | pip install
    loading
        15
    loading  
       2017-02-10 18:35:17 +08:00 via Android
    @wellsc 哦,对。另:我没收到消息,你可能被降权了。
    mooncakejs
        16
    mooncakejs  
       2017-02-10 18:47:25 +08:00
    python 没得洗。。
    xialdj
        17
    xialdj  
       2017-02-10 19:43:44 +08:00 via iPhone
    @sogood 好用
    mercurylanded
        18
    mercurylanded  
       2017-02-10 19:44:40 +08:00
    用 java
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2771 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 13:34 · PVG 21:34 · LAX 05:34 · JFK 08:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.