【发布时间】:2018-01-19 07:55:03
【问题描述】:
我使用的是 Windows 7,并且我正在更新补丁。我使用的是 Python 3.5.2 并想升级到 3.6,所以我去了 Python 站点,下载了适用于 Windows 的 3.6.4.exe,然后运行它。 Python 似乎工作正常并且是 3.6.4,但尝试导入我正在使用的任何包(pandas、numpy、tensorflow 等)现在给了我ModuleNotFoundError: No module named <whichever module it was>。此外,pip list 现在只显示 pip 和 setuptools。
这似乎是一个已知问题,例如近一年前的this,这表明我应该“卸载 python 绑定并重新安装”,但我无法弄清楚这意味着什么。幸运的是,我仍然可以使用py -3.5 访问 3.5.2,然后我的导入工作。谁能告诉我如何在 3.6 中解决此问题,而无需手动重新安装所有模块?
我在想我可能应该通过 pip 升级;似乎这是可能的,但出于某种原因可能是个坏主意?经过进一步调查,看起来我应该做的是用pip freeze > requirements.txt 保存我的要求,然后在安装新的Python 后用pip install -r requirements.txt 恢复它们。是这样吗?
【问题讨论】:
-
您在使用虚拟环境吗?这些类型的依赖问题就是它们的目的。作为一般规则,在你的机器上保持你的 python(s) 尽可能干净,并在你的应用程序的虚拟环境中安装所有 pypy 包。我不能确定,但你可能不需要对你的机器做任何事情,除了设置一个虚拟环境并重新安装你的包。搜索“virtualenv”、“virtualenvwrapper”和“add2virtualenv”。
-
我认为我不需要 virtualenv,因为我只是想用 3.6 替换 3.5,而不是同时维护它们。我正在调查它,但你能告诉我在这种情况下我会如何使用 virtualenv 吗?我意识到我可以通过手动重新安装所有软件包来解决问题,但如果可能的话,我想避免这种情况。
标签: python-3.x upgrade