如何无痛升级编程语言?

2017-02-10 10:40:56 +08:00
 Yeoman
Archlinux (虚拟机)用户
python 升级到 3.6 然后 3.5 的包就不能直接用了,都在 /usr/lib/python3.5 里
ruby 升级到 2.4 然后 2.3 的包也不能直接用了,都在~/.gems/ruby/2.3.0 里

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

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

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

你试试升级 pip 到 python 3.6 对应的版本试试
herozhang
2017-02-10 17:09:08 +08:00
系统自带的 python 不要去用,都 virtualenv 新建环境来用吧
要不是够折腾的, 3.x 和 2.x 的,各种依赖版本不一致的。。。
sammo
2017-02-10 18:28:09 +08:00
我一般不用全局的 packages ,而是每个项目建立自己的虚拟环境、搭一套完全这个项目自己的 packages 。不依赖全局的东西、全局就不会出问题 ..
guyskk
2017-02-10 18:29:01 +08:00
重新安装一下吧
python3.5 -m pip freeze | pip install
loading
2017-02-10 18:35:17 +08:00
@wellsc 哦,对。另:我没收到消息,你可能被降权了。
mooncakejs
2017-02-10 18:47:25 +08:00
python 没得洗。。
xialdj
2017-02-10 19:43:44 +08:00
@sogood 好用
mercurylanded
2017-02-10 19:44:40 +08:00
用 java

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

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

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

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

© 2021 V2EX