我正在使用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
恢复它们。这是对的吗?
答案 0 :(得分:0)
很难说你是否有安装问题,但如果我在你的位置,这就是我会尝试的。
按照创建虚拟环境; docs
c:&gt; c:\ Python36 \ python -m venv c:\ path \ to \ myenv
激活您的虚拟环境
C:&GT; \脚本\ activate.bat
在激活的环境中运行您的应用程序。每次出现导入错误时,请在活动环境中执行pip-install。 (对于您自己的模块,您可能需要在'activate.bat'中修改PYTHONPATH)
这将为您提供一个干净的requirements.txt,其中不包含来自其他项目的一堆垃圾。然后,当你转到3.7时,只需创建virtualenv并运行你的requirements.txt和wala!
我怀疑你的问题根本没有针对正确的解释器运行,从虚拟环境中运行至少应该排除它。