Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Windows shell调用Anaconda Python时导入失败_Python_Cmd_Anaconda - Fatal编程技术网

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

从Windows shell调用Anaconda Python时导入失败,python,cmd,anaconda,Python,Cmd,Anaconda,我想从Windows shell中调用我的Anaconda Python。目标是最终使用系统调用从MATLAB调用它,因此我必须使用普通的Windows shell,而不是“Anaconda提示符” 我有一个简单的Python脚本,我想运行它,但它没有通过import语句: > "C:\ProgramData\Anaconda3\python.exe" lhs.py Traceback (most recent call last): File "lhs.py", line 8, i

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

我有一个简单的Python脚本,我想运行它,但它没有通过import语句:

> "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. 
“C:\ProgramData\Anaconda3\python.exe”lhs.py
回溯(最近一次呼叫最后一次):
文件“lhs.py”,第8行,在
进口numpy
文件“C:\ProgramData\Anaconda3\lib\site packages\numpy\\uuuu init\uuuu.py”,第140行,在
从…起导入\u分发服务器\u初始化
文件“C:\ProgramData\Anaconda3\lib\site packages\numpy\\u distributor\u init.py”,第34行,在
从…起进口
ImportError:DLL加载失败:找不到指定的模块。
编辑

我制作了一个简化的Python脚本(
error.py
),其中只包含一行:

导入numpy

我称之为:

“C:\ProgramData\Anaconda3\python.exe”error.py

TL;博士
长话短说 github上有一个报告。我是通过搜索你邮件的最后几行找到的。关于这一点:

第47行,在 将numpy作为np导入 文件“C:\Users\hanna\Anaconda3\lib\site packages\numpy\u init\uuu.py”,第140行,在 从…起导入\u分发服务器\u初始化 文件“C:\Users\hanna\Anaconda3\lib\site packages\numpy\u distributor\u init.py”, 第34行,在 从…起进口

在那里,它们链接到一个:
错误消息,如

英特尔MKL致命错误:无法加载MKL_英特尔线程.dll

原因
NumPy无法加载正确的MKL或英特尔OpenMP运行时 图书馆。这几乎总是由以下两种原因之一造成的:

  • 具有NumPy的环境尚未激活

  • 另一软件供应商已安装MKL或英特尔OpenMP (libiomp5md.dll)文件保存到C:\Windows\System32文件夹中。这些 文件在Anaconda之前加载,它们不兼容。

  • 如果您没有激活您的环境,请从激活环境开始。


    因此,让我们先试试这个:

    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

    Python3.6.8构建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:

    图形用户界面:

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

    set CONDA\u DLL\u SEARCH\u MODIFICATION\u ENABLE=1


    您通常使用水蟒环境吗?如果是,这可能就是原因:如果您只调用
    python.exe lhs.py
    ,您将不会为此安装软件包,但它们已安装。这个问题来自numpy自己的初始化序列。我无法复制你的问题。相反,当我像您一样调用anacondy python时,anacondy python可执行文件会告诉我
    ModuleNotFoundError
    (并且在conda env中使用时有效)。你能提供一种复制的方法吗?相关:?我在这里太深了。创建新环境(
    conda activate myenv
    )的效果如何?如何选择合适的名称?Re:“让我们先尝试一下”-
    conda
    在常规cmd shell中不是可识别的命令。好吧,这很奇怪。我像你说的那样运行了
    activate.bat
    。然后我运行了lhs.py(省略了环境参数)。它在我的默认文本编辑器中打开了
    lhs.py
    ,而不是运行它。。好的,哈哈。我想在我答案的开头试试我的最新编辑,没有康达run@IlyaRe:“创建一个新环境的效果如何?”我真的建议你多了解一下,但这超出了这个问题的范围。基本上,环境包含您使用的模块,因此您可以为不同的程序提供不同的版本和组合。这是使用蟒蛇的主要原因
    F:\Programme\Programme\Anaconda3\condabin\activate.bat textrecognition && python N:\Temp\temp.py
    
    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