CONDA Base Env error error / NUMPY: ImportError: сбой загрузки DLL - PullRequest
0 голосов
/ 28 октября 2019

Только что установил miniconda на C:\Anaconda 3 и запустил 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 голосов
/ 28 октября 2019

Это ошибка DLL. вызвано из-за отсутствия файла DLL. загрузить файлы из здесь

Перейдите в папку C: / windows / system32 и / Windows / SysWOW64. Просто вставьте эти файлы

Если потребуется, просто замените файлы

...