【问题标题】:Installing Keras broke Conda virtual environment (Windows 10)安装 Keras 破坏了 Conda 虚拟环境(Windows 10)
【发布时间】:2018-11-26 00:18:46
【问题描述】:

我试图在我的 python 3.7 环境中安装 Keras,然后我注意到 tensorflow 和 keras 都不支持 python 3.7,它们支持 3.6
然后我使用 conda/anaconda 使用 python 3.6 创建了一个新的虚拟环境。
我可以通过输入来激活这个虚拟环境 activate deeplearning 在 cmd 中,然后键入 python 进入 python shell。
我使用 conda install -c conda-forge keras 安装了 Keras 及其依赖项,似乎没问题我输入了 python shell 导入的 keras 和其他与库一起修改的库,他们按预期工作。
如果我可以自己手动再次打开虚拟环境,我关闭了窗口再试一次。
输入activate deeplearning,然后我遇到了这个问题( Screenshot )
我只在 cmd 截图上输入了activate deeplearning 部分。
这里的问题是我无法进入虚拟环境,我得到这个命令?在cmd上,然后它会自行关闭。我无法进入虚拟环境,因此无法安装新库。但是我可以从安装它的地方进入这个环境的python shell。
但是文件夹中没有.bat文件,所以我也不能从那里激活虚拟环境。
我不知道该怎么做,如果有人可以提供帮助,我将不胜感激,在此先感谢。

【问题讨论】:

  • 你能解释一下什么是“这个问题”吗?我们有一个带有一堆命令的屏幕截图,但没有“问题”。此外,将屏幕截图更改为实际文本以供索引/其他可能研究相同问题的用户使用。
  • 这里的问题是我无法进入虚拟环境,我得到这个命令?在cmd上,然后它会自行关闭。我无法激活虚拟环境,因此无法安装新库。但是我可以从安装的地方进入这个环境的python shell。但是文件夹中没有 .bat 文件,所以我也无法从那里激活虚拟环境。
  • 顺便说一下,图像仍然存在。

标签: python tensorflow keras anaconda virtualenv


【解决方案1】:

似乎激活 keras 的脚本过早退出。原因之一可能是python 3.6中没有设置环境。

尝试使用命令创建虚拟环境:

conda create --name deeplearning python=3.6

然后您可以按照以下说明进行操作: http://inmachineswetrust.com/posts/deep-learning-setup/

注意:安装 keras 时使用命令:

conda 安装 keras

【讨论】:

  • 第一个环境的python不是python 3.6,但第二个环境的python是3.6,仍然无法正常工作,出现同样的错误(过早退出)
  • 只是为了确认 - 您是否尝试了上述所有步骤? >conda create --name deeplearning python=3.6 >activate deeplearning >conda install ipython >conda install jupyter >conda install pandas >conda install scipy >conda install seaborn >conda install scikit-learn >conda install keras 我最近遇到了类似的问题,但在完成上述步骤后,我能够安装和使用 keras。您还需要 Microsoft Visual C++ 2015 Redistributable(您也可以检查它是否已安装)。如果这不起作用,我想您将不得不调试脚本。
  • 我现在才能够使用 keras 和 tensorflow。使用 anaconda 创建了 python 3.6 的虚拟环境,使用conda install <package_name> 安装了一些包。然后使用 pip install tensorflow pip install keras 安装 tensorflow 和 keras 我认为 conda install tensorflowconda install keras 以某种方式破坏了这两个包。
【解决方案2】:

我在 Python 2.7 上通过 Anaconda Navigator 删除了名为 vs2008_win-32 的项目,修复了我的环境。

【讨论】:

    【解决方案3】:

    在我的系统上,错误是由另一个激活脚本引起的,可能是同时安装的。要确认您是否属于这种情况,请查看启动时动态生成的批处理文件。要想知道它的名字,把_conda_activate.bat改成这样:

    ...
    
    :FIXUP43
    @FOR /F "delims=" %%i IN ('@CALL "%CONDA_EXE%" shell.cmd.exe %*') DO @SET "_TEMP_SCRIPT_PATH=%%i"
    @IF "%_TEMP_SCRIPT_PATH%"=="" @EXIT /B 1
    @IF NOT "%CONDA_PROMPT_MODIFIER%" == "" @CALL SET "PROMPT=%%PROMPT:%CONDA_PROMPT_MODIFIER%=%_empty_not_set_%%%"
    
    :: Add these lines:
    set _TEMP_SCRIPT_PATH
    pause
    
    @CALL "%_TEMP_SCRIPT_PATH%"
    ...
    
    

    在临时脚本中注释掉其他脚本的调用 直到找到罪魁祸首。对我来说,这与 vs2015 有关。

    @SET "PYTHONIOENCODING=1252"
    @CALL "C:\Users\x030551\AppData\Local\Continuum\miniconda3\etc\conda\activate.d\keras_activate.bat"
    :: @CALL "C:\Users\x030551\AppData\Local\Continuum\miniconda3\etc\conda\activate.d\vs2015_compiler_vars.bat"
    

    在我获得这些信息后,Google 将我指向 this issue。解决方案很大程度上取决于您的环境,无法在此处发布。

    【讨论】:

      猜你喜欢
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-18
      • 2019-09-02
      • 2019-05-16
      • 2019-12-23
      • 2018-06-18
      相关资源
      最近更新 更多