Запуск сценариев python из командной строки с использованием различных версий python, определенных в enacs anaconda - PullRequest
0 голосов
/ 11 января 2020

У меня есть 2 python инструментов, которые я должен запустить по линии windows cmd. Один написан в python2 .7, в то время как другой требует python3 .6.

Я установил новейшую версию Anaconda python3 .7 и создал две новые среды в 'C: \ ProgramData \ Anaconda3 \ envs' с именами 'python27' и 'python36'. По какой-то причине мне пришлось вручную установить numpy и scipy, используя conda install -n env_name numpy scipy для каждой из новых сред.

Причина, по которой мне нужно запустить оба инструмента, используя строку windows cmd, заключается в том, что я интегрировал их в среду рабочего процесса (RCE от DLR в случае необходимости), которая выполняет интегрированные инструменты таким образом. Что означает, что я не могу просто использовать Anaconda Prompt вместо этого.

Я не могу просто добавить установку python в переменную среды PATH, поскольку для каждого инструмента требуется отдельная версия python (а файл называется 'python .exe' во всех версиях), поэтому Я попытался создать псевдонимы для приглашения cmd в соответствии с предложением «roryhewitt» в этой теме Псевдонимы в Windows командной строке .

мой файл 'python27.bat':

@echo off
echo.
C:\ProgramData\Anaconda3\envs\python27\python.exe %*

Проблема этого подхода заключается в том, что python обнаруживает ошибку при попытке импортировать numpy:

>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\envs\python27\lib\site-packages\numpy\__init__.py", line 142, in <module>
    from . import core
  File "C:\ProgramData\Anaconda3\envs\python27\lib\site-packages\numpy\core\__init__.py", line 71, in <module>
    raise ImportError(msg)
ImportError:

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
Here is how to proceed:
- If you're working with a numpy git repository, try `git clean -xdf`
  (removes all files not under version control) and rebuild numpy.
- If you are simply trying to use the numpy version that you have installed:
  your installation is broken - please reinstall numpy.
- If you have already reinstalled and that did not fix the problem, then:
  1. Check that you are using the Python you expect (you're using C:\ProgramData\Anaconda3\envs\python27\python.exe),
     and that you have no directories in your PATH or PYTHONPATH that can
     interfere with the Python and numpy versions you're trying to use.
  2. If (1) looks fine, you can open a new issue at
     https://github.com/numpy/numpy/issues.  Please include details on:
     - how you installed Python
     - how you installed numpy
     - your operating system
     - whether or not you have multiple versions of Python installed
     - if you built from source, your compiler versions and ideally a build log

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

Original error was: DLL load failed: The specified module could not be found.

Кто-нибудь знает лучший способ запуска python сценариев с указанной средой c python через строку windows cmd, или что вызывает ошибку импорта при использовании псевдонима?

TLDR: у меня есть 2 python инструментов, которые требуют python2 .7 и python3 .6 соответственно. Я должен запустить эти инструменты, используя строку windows cmd, и использование псевдонимов для файла 'python .exe' в указанных c средах anaconda приводит к ошибке импорта numpy. Есть ли лучший способ обработки двух python сред через строку cmd или простое исправление ошибки импорта?

1 Ответ

0 голосов
/ 11 января 2020

Похоже, что ошибка ImportError при использовании python2 .7 через псевдоним в строке cmd была вызвана тем, что среда anaconda не была активирована. Это привело к невозможности загрузки модуля.

Я добавил функциональность conda для использования в строке cmd, как указано в сообщении "Simba" здесь: Команда Conda не распознается на Windows 10 . Это исправило numpy ImportError.

Теперь я могу запускать нужные инструменты из строки cmd, используя правильную версию python, сначала активировав правильную среду anaconda, а затем вызвав псевдоним

Пример:

C:\Users\user>conda activate python27

(python27) C:\Users\user>python27 main.py
...