从Windows Shell调用Anaconda Python时导入失败

我想从Windows Shell调用Anaconda Python。目标是最终使用系统调用从MATLAB进行调用,因此我必须使用普通的Windows shell,而不是“ Anaconda提示”。

我有一个想要运行的简单Python脚本,但是它不会超出import语句:

sc

编辑

我制作了一个简化的Python脚本(> "C:\programdata\Anaconda3\python.exe" lhs.py Traceback (most recent call last): File "lhs.py",line 8,in <module> import numpy File "C:\programdata\Anaconda3\lib\site-packages\numpy\__init__.py",line 140,in <module> from . import _distributor_init File "C:\programdata\Anaconda3\lib\site-packages\numpy\_distributor_init.py",line 34,in <module> from . import _mklinit ImportError: DLL load failed: The specified module could not be found. ),仅包含一行:

error.py

然后我将其称为:

import numpy

a10540693 回答:从Windows Shell调用Anaconda Python时导入失败

TL; DR

C:\ProgramData\Anaconda3\condabin\activate.bat YOURENVIRONMENTNAME && python N:\Temp\lhs.py

长答案

在github上有一个similar issue的报道。我是通过搜索邮件的最后几行找到的。与此有关:

File "C:\Users\hanna\Anaconda3\lib\site-packages\tensorflow\python_init.py",
     

第47行,在       将numpy导入为np       在第140行中输入文件“ C:\ Users \ hanna \ Anaconda3 \ lib \ site-packages \ numpy_init_.py”       来自。导入_distributor_init       文件“ C:\ Users \ hanna \ Anaconda3 \ lib \ site-packages \ numpy_distributor_init.py”,   第34行,在       来自。导入_mklinit

在那里,它们链接到conda troubleshooting page
错误消息,如

  

英特尔MKL致命错误:无法加载mkl_intel_thread.dll

     

原因
  NumPy无法加载正确的MKL或Intel OpenMP运行时   库。这几乎总是由以下两种原因之一引起的:

     
      
  1. 具有NumPy的环境尚未激活。

  2.   
  3. 另一个软件供应商已安装MKL或Intel OpenMP   (libiomp5md.dll)文件放入C:\ Windows \ System32文件夹。这些   文件是在Anaconda之前加载的,并且不兼容。   

  4.   
     

如果您不激活环境,请先执行此操作。


所以让我们先尝试一下:

C:\\ProgramData\\Anaconda3\\condabin\\activate.bat
conda run -n yourenvironment C:\\path\\to\\your\\pythonfile\\lhs.py

(是,来自普通的cmd终端)

如果这行得通,您应该可以使用&&链接这两个命令。我自己的示例如下:

F:\Programme\Programme\Anaconda3\condabin\activate.bat && conda run -n textrecognition N:\Temp\temp.py

这可以进一步简化为

F:\Programme\Programme\Anaconda3\condabin\activate.bat textrecognition && python N:\Temp\temp.py

如果问题是第二个,则可以选择在system32之前加载conda。从以下版本开始的anaconda支持此功能:

  

Python 2.7.15内部版本14

     

Python 3.6.8 build 7

     

Python 3.7.2内部版本8

要激活该功能,您需要将一些环境变量设置为1:

  

控制环境变量:

CONDA_DLL_SEARCH_MODIFICATION_ENABLE

CONDA_DLL_SEARCH_MODIFICATION_DEBUG

CONDA_DLL_SEARCH_MODIFICATION_NEVER_ADD_WINDOWS_DIRECTORY

CONDA_DLL_SEARCH_MODIFICATION_NEVER_ADD_CWD
     

要在Windows上设置变量,可以使用CLI(Anaconda   例如,提示)或Windows GUI。

     

CLI:   https://superuser.com/questions/79612/setting-and-getting-windows-environment-variables-from-the-command-prompt/79614

     

GUI:   http://www.dowdandassociates.com/blog/content/howto-set-an-environment-variable-in-windows-gui/

     

应将这些值设置为1以启用它们。例如,在   anaconda提示终端:

     

set CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1

本文链接:https://www.f2er.com/3071128.html

大家都在问