【问题标题】:How to use Python3.5 in order to get around Python2.7 bug with cPickle?如何使用 Python3.5 来绕过 cPickle 的 Python2.7 错误?
【发布时间】:2015-12-04 02:14:54
【问题描述】:

我需要使用 Python3.x 来解决 cPickle 的以下错误。任务需要尽快完成。

我在使用带有Python 2.7.10 的 cPickle 时遇到了以下错误。事实上,这是一个只有 Python3.x 才能解决的 bug

http://bugs.python.org/issue11564

所以,我安装了 Python3.5。现在,脚本没有运行,因为我没有为 Python3 安装模块,例如

     import matplotlib.pyplot as plt 
ImportError: No module named 'matplotlib

用户应该如何开始将 Python 2.7 中安装的所有模块下载到 Python 3.5?

【问题讨论】:

  • 使用 pip 安装 3.5 的包,或者,如果你在 Windows 上运行 Python 的 python.org 版本(即不是 Anaconda 或其他),你可以下载预编译的包来自here。您不能简单地将 site-packages 目录从 2.7 复制到 3.5,您必须重新安装所有内容。
  • 您的第一个问题“用户应该如何开始同时使用 Python2.7 和 Python 3.5?”如此广泛以至于几乎是荒谬的,我不知道你在问什么,所以我把它排除在我的答案之外。

标签: python python-2.7 python-3.x pickle


【解决方案1】:

pip freeze 可以将包设置从一个 Python 安装镜像到另一个。

假设为两个版本的 Python 都安装了 pip(我们将它们命名为 pip2pip3,您可能需要根据操作系统和配置对每个版本使用合格的路径),您只需执行以下操作:

pip2 freeze > requirements.txt
pip3 install -r requirements.txt

这将为在 Py3 安装中安装在 Py2 下的每个包安装相同的包和版本。请参阅pip freeze docs 了解用于调整输出的开关。如果您想要最新版本而不是相同版本,我相信您也可以删除每个要求的==x.y.z 部分。

【讨论】:

    猜你喜欢
    • 2016-06-26
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 2020-10-23
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多