Как исправить скрипт Python, запущенный в CMD get Ошибка DLL, но работающий в Pycharm и Anaconda Comand Promt - PullRequest
0 голосов
/ 25 июня 2019

Я хочу запустить скрипт Python в cmd через командный файл.Сценарий завершается с ошибкой загрузки DLL для импорта numpy.Тот же скрипт Python работает в pycharm (версия Anaconda 2019) и в командной строке anaconda без ошибок.

Для всех я использую ту же среду anaconda.

Для воспроизведения ошибок

  1. Установите Anaconda, не устанавливайте переменные пути
  2. Создайте среду, хранящуюся не в папке по умолчанию
  3. conda create --prefix
  4. Конда активировать
  5. Конда установить колбу Numpy 6. Код для тестирования.test-numpy.py
import numpy as np
print(np.abs([1,2-4,6]))

создание пакетного сценария запуск пакетного сценария

Запуск в cmd сценария python, который имеет только системный импорт или не имеет импорта, работает нормально.Задать переменную pythonpath в Windows нельзя.Что я сделал до сих пор: Проверка, есть ли ошибка PATH: я напечатал sys.path, как через Pycharm, так и тот же скрипт python, запущенный через CMD, дал те же результаты: он указывает на мою анаконду с папками: ...\ (сама среда) ... \ python37.zip ... \ DLLs ... \ lib ... \ lib \ site-packages

Редактировать

Протестировано в коде Visual Studio, выдает ту же ошибку, что и при запуске через cmd

  • Обнаружил Visual Studio Coda до сих пор, не может обрабатывать условия conda, которые установлены с -pили -prefix и не сохраняются в пути по умолчанию

Деинсталлировано и переустановлено numpy Протестировано для импорта другого модуля: Flask также не работает с ошибкой загрузки DDL, но работает нормально при работе в Pycharm.Протестировано на другом ПК с другой версией анаконды.Другой человек может воспроизвести ту же ошибку, что и я.

Я предполагаю, что мой код не работает в cmd, потому что анакона должна быть каким-то образом активирована до того, как он был запущен, и не работает как отдельная.

Ошибка Messeag Я запускаю свой скрипт в CMD (... указывает на мой путь к anaconda enviormant):

... \ lib \ site-packages \ numpy \ core__init __. Py ", строка40, в from. Import multiarray ... \ lib \ site-packages \ numpy \ core \ multiarray.py ", строка 12, в from.import overrides ... \ lib \ site-packages \ numpy \ core \ overrides.py ", строка 6, из numpy.core._multiarray_umath import (Ошибка ImportEr: ошибка загрузки DLL: Das angegebene Modul wurde nicht gefunden.

Во время обработки вышеупомянутого исключения произошло другое исключение:

Трассировка (последний вызов был последним): "TestNumpy.py", строка 14, в numpy импорта как np ... \ lib \ site-packages\ numpy__init __. py ", строка 142, в от. import core ... \ lib \ site-packages \ n umpy \ core__init __. py", строка 71, в вхождении ImportError (msg) ImportError:

ВАЖНО: ПОЖАЛУЙСТА, ПРОЧИТАЙТЕ ЭТО ДЛЯ СОВЕТА ПО КАК РЕШЕНИЮ ЭТОЙ ПРОБЛЕМЫ!

Не удалось импортировать модуль расширения с несколькими массивами numpy. Скорее всего, вы пытаетесь импортировать неудачную сборку numpy. Вот как это сделать: - Если выработая с NumPy Git-репозиторием, попробуйте git clean -xdf (удаляет все файлы, не относящиеся к управлению версиями) и пересоберите NUMPY. - Если вы просто пытаетесь использовать установленную вами NUMPY-версию: ваша установка не работает - plЛегко переустановить NumPy.- Если вы уже переустановили и это не устранило проблему, то: 1. Убедитесь, что вы используете ожидаемый вами Python и что у вас нет каталогов в PATH или PYTHONPATH, которые могут мешать работе с версиями Python и numpy, которые вы используете.пытаясь использовать.2. Если (1) выглядит нормально, вы можете открыть новый выпуск по адресу https://github.com/numpy/numpy/issues. Пожалуйста, включите подробную информацию о: - как вы установили Python - как вы установили numpy - вашей операционной системе - независимо от того, есть ли у вас несколько версийPython установлен - если вы собрали из исходного кода, версии вашего компилятора и в идеале журнал сборки

 Note: this error has many possible causes, so please don't comment on
 an existing issue about this - open a new one instead.

Первоначальная ошибка была: Ошибка загрузки DLL: Das angegebene Modul wurde nichtГефунден.

1 Ответ

0 голосов
/ 26 июня 2019

Я не нашел другого решения, похоже, что нужно действительно активировать среду conda перед вызовом скрипта через conda:

call <file_path>/Anaconda/Scripts/activate.bat <file_path/Anaconda_enviorment> && python <file_path/pythonscript.py>
...