我最近升级了我的Linux发行版。python3.5被python3.6取代。在
我用pip3
安装的所有站点包仍然在/usr/lib/python3.5/site-packages
目录中,Python现在找不到它们,因为它显然是在.../python3.6/site-packages
中查找的。在
我看到目录的内容,我可以手动再次安装它们,但在我看来这不是正确的方法。我可以将内容移动到新目录,但同样,这在我看来也不正确。在
我该怎么处理?在
我应该在升级之前准备一个pip3 freeze
列表吗?在
我试着搜索,但是关键词可能太笼统了,得到了很多不相关的答案。
python3.5被python3.6取代。但是您仍然可以使用python3.5作为备份选项。在
如果你想使用python3.6,你必须重新安装python3.6的所有pip包。这是有道理的。在
假设你从2.7改为3.5。您需要分别保存这两个环境。因此3.6环境不同于3.5。在
一种快速的方法是对3.5安装
pip freeze
,然后为3.6安装这些依赖项。在升级
^{pr2}$既然您已经没有这个选项了,首先尝试列出python3.5中的所有包
为此,您可以按照@kabanus的回答安装pip3.5。在
另外,建议每个项目使用虚拟环境,这样您就可以为每个项目维护单独的环境。在
这会使您的重新安装更简单。签出the description。使用
freeze
你可以做一些类似的事情:通常推荐的方法是使用
^{pr2}$virtualenv
作为站点包,这样就不会在安装区域乱扔垃圾,但它不会破坏我的东西。另一个选项是检查linux发行版是否有可用于正确检索的包,如:这是我更喜欢的-而且可以用发行版升级。至于现在该怎么做,如果你真的不想重新安装所有的东西,你可以尝试
cp /usr/lib/python3.5/site-packages/* /usr/lib/python3.6/site-packages
。不同版本之间的差异并不是很大,所以我相信大多数软件包都能立即工作。您可能需要sed
来将所有文件中的python3.5
替换为python3.6
。忘记删除所有pyc
文件。在Python模块是自包含的,如果有东西坏了,它可以按包处理,而站点包是完全自包含的,所以您可以随时删除所有内容并重新安装。在
最后一点要注意的是,您可以尝试为linux安装pyton3.5/pip3.5,然后执行冻结操作。如果没有软件包,您可以手动安装(
whl
)或独立编译并正确配置站点路径。如果要将内容保存在全局站点包目录中或迁移到virtualenv
这可能是最安全的选项。在相关问题 更多 >
编程相关推荐