只需在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时出现错误。
谢谢!
答案 0 :(得分:-1)
这是DLL错误。由于缺少DLL文件而引起的。从here
下载文件转到C:/ windows / system32和/ Windows / SysWOW64文件夹。只需粘贴这些文件
如果询问只是替换文件