0

我使用 python 2.7 并安装了以下软件包:

distribute
decorator
*matplotlib
memory-profiler
networkx
*numpy
Pillow
pip
py2exe
PyAudio
*PyBluez
*pygame
pyglet
*PyInstaller
pyparsing
*pyserial
python-dateutil
pytz
pywin32
requests
scikit-learn
*scipy
setuptools
six

标有 * 的那些是关键的。

我想迁移到 python 3.5,完全放弃 2.7(不想同时拥有)。

  1. 我可以在保留旧软件包的同时做到这一点,还是必须从头开始安装所有东西?

  2. 有什么理由我不应该从 2.7 迁移到 py 3.5?

  3. 我应该先移动到 3.3/3.4 还是直接移动到 3.5?

  4. 我没有使用 virtualenv,因为我对此不太熟悉。我是不是该?

更新:跟进。

我可以列出我拥有的软件包,然后手动安装所有软件包。

  1. 如何安装 3.5 和卸载 2.7?

我是先删除 2.7 然后安装 3.5 还是同时安装它们(这会产生任何问题吗?)然后删除 2.7?

我主要将 python 用于 numpy、蓝牙、串行、OpenCV、OpenGL。我也打算稍后涉足网络。我对语法或方法更改没有任何问题。我以前坚持使用 pyinstaller,但最近也移植到 3.5。

4

3 回答 3

2

切换后才意识到。

如果您希望 OpenCV 正常工作,请不要安装 python 3.5。它尚未为此构建,并且某些功能不起作用。

于 2015-11-06T12:09:52.540 回答
1

您将需要重新安装所有软件包。您应该检查所有这些包是否可用于 Python 3。(从您的问题来看,您可能已经这样做了,但并不完全确定。)

在完全放弃 Python 2 之前测试 Python 3 的运行情况是明智的。您可以通过并排安装两者来做到这一点,或者在虚拟机中安装 Python 3 或类似的东西。如果你有想要继续使用的现有代码,你肯定想测试它以确保一切都在 Python 3 上顺利运行。

可能没有理由去 3.3/3.4。直接上3.5。

Virtualenv 对于在同一台计算机上设置不同的 Python 环境绝对有用。但是,您仍然需要先安装 Python 3,然后才能在 virtualenv 中使用它。

于 2015-10-27T17:55:41.780 回答
0

移动包是个坏主意,使用 pip 重新安装它们更安全:

  • 使用pip freeze > requirements.txt. 它将所有包和版本存储在文件中
  • 安装 Python 3.5
  • 运行pip install -r requirements.txt。它将在您的 python3.5 上安装相同的软件包
  • 针对此 Python 运行所有测试,以确保您的应用仍按预期运行

保留 2.7 的唯一原因是代码不兼容:如果您的代码或您的某个包在 Py3K 上不起作用。

Virtualenv 是一个有用的工具,任何 Python 开发者都应该知道如何使用它。

于 2015-10-27T17:55:06.260 回答