CONDA基本环境加载错误/ NUMPY:ImportError:DLL加载失败

时间:2019-10-28 08:36:59

标签: python anaconda conda environment

只需在C:\Anaconda 3上安装miniconda并运行conda install numpy即可取消Anaconda外壳的大小(默认为conda base作为env)。

如果我运行Anaconda命令提示符并键入python >> import numpy,则一切正常。

如果我打开普通的命令窗口并转到c:\Anaconda3并运行python >> import numpy,将失败(以下错误)。

我已经检查过sys.path,并且在两个CMD窗口上它们都相同。唯一的解决方案是在正常的CMD窗口上运行:c:\Anaconda3\Scripts\conda activate base,然后运行python >> import numpy

过去我安装了Miniconda,但没有出现此问题,因此我突然不得不激活环境,我感到很惊讶。我以为默认情况下会加载基本环境,但似乎并非如此,我必须强制这样做。

我得到的错误是:

>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Anaconda3\lib\site-packages\numpy\__init__.py", line 140, in <module>

    from . import _distributor_init
  File "c:\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:\Anaconda3\python.exe C:\Anaconda3\cwp.py C:\Anaconda3 C:\Anaconda3\python.exe,然后运行import numpy,这将起作用。 cwp.py文件如下:

# this script is used on windows to wrap shortcuts so that they are executed within an environment
#   It only sets the appropriate prefix PATH entries - it does not actually activate environments

import os
import sys
import subprocess
from os.path import join, pathsep

from menuinst.knownfolders import FOLDERID, get_folder_path, PathNotFoundException

# call as: python cwp.py PREFIX ARGs...

prefix = sys.argv[1]
args = sys.argv[2:]

new_paths = pathsep.join([prefix,
                         join(prefix, "Library", "mingw-w64", "bin"),
                         join(prefix, "Library", "usr", "bin"),
                         join(prefix, "Library", "bin"),
                         join(prefix, "Scripts")])
env = os.environ.copy()
env['PATH'] = new_paths + pathsep + env['PATH']
env['CONDA_PREFIX'] = prefix

documents_folder, exception = get_folder_path(FOLDERID.Documents)
if exception:
    documents_folder, exception = get_folder_path(FOLDERID.PublicDocuments)
if not exception:
    os.chdir(documents_folder)
sys.exit(subprocess.call(args, env=env))

PS:如果您想知道“如果您只需激活基本功能,为什么需要这么做”?例如,在使用xlwings时,脚本会调用python.exe(即使我不认为先激活环境,即使我认为在根文件夹上使用python.exe也意味着不需要激活基本环境)。这很麻烦,因为在尝试加载numpy时出现错误。

谢谢!

1 个答案:

答案 0 :(得分:-1)

这是DLL错误。由于缺少DLL文件而引起的。从here

下载文件

转到C:/ windows / system32和/ Windows / SysWOW64文件夹。只需粘贴这些文件

如果询问只是替换文件