Как развернуть программы на Python в средах Anaconda в Windows? - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь использовать среды Anaconda и conda, чтобы программы Python для сбора данных * и т. Д. Запускались из командной строки (Anaconda) в Windows. Настройка будет состоять в том, что программы Python устанавливаются в определенное место (клонировано из Github), в пределах% PATH% или в зависимости от того, какая переменная среды больше подходит.

Из командной строки Anaconda в другом каталоге и в конкретной среде conda я хочу (и я, и другие пользователи) иметь возможность запускать python test.py <args> или test.py <args> (любое решение приемлемо) и иметь общесистемное conda среда запускает свой Python для выполнения программы. test.py может / будет иметь соответствующий набор shebang.

Прямо сейчас python test.py вызывает правильный Python в активной среде conda, но не может найти программу test.py, так как Python не будет искать% PATH% или подобный в поисках программы. test.py что-то делает (Windows не жалуется, что исполняемый файл не может быть найден, и я играю с ассоциациями файлов, чтобы продвинуться так далеко), но, похоже, не запускает Python - простую функцию печати или повышения оператор как единственная запись в файле ничего не делает.

Я пытался установить ассоциации файлов в Windows, но это ничего не изменило. Я скопировал py.exe / pyw.exe в среду Anaconda без изменений.

Это что-то, что можно сделать в Anaconda, или мне придется вернуться к непосредственной установке базового Python и попытаться использовать там механизм запуска?

Обратите внимание, что я также собираюсь развернуть эти программы на Raspbian, поэтому любые решения, в том числе не-Anaconda, которые будут работать кроссплатформенно, будут стоить дополнительных усилий с моей стороны.

* эти программы широко используют пакеты библиотек для доступа к внешнему лабораторному оборудованию, подключенному к USB / GPIB / serial / ethernet, и используют matplotlib, scipy и т. Д., Следовательно, в качестве базовой среды требуется клонируемая среда conda.

1 Ответ

0 голосов
/ 01 ноября 2018

Оказывается, правильный ответ на этот вопрос довольно прост, но его трудно найти хорошо объясненным. Это может быть немного яснее, чем другие ответы, которые я нашел:

Установите автономный лаунчер из pylauncher и добавьте #!/usr/bin/env python шебанги в свои скрипты.

Это должно зарегистрировать файлы .py в Python.File, и вы найдете Pythons Anaconda в соответствующих средах. Если у вас нет питона не Anaconda, он будет использовать базовую среду Anaconda (эти два факта были ключевым элементом, который я упускал из различных других ответов на эту проблему, на которые я смотрел, включая документы по python.org ).

Если у вас установлен Python из python.org, то его будет использовать отдельная оболочка командной строки, по умолчанию Python 2.x, а затем Python 3.x. С #!/usr/bin/env python shebang обычная командная оболочка будет пытаться использовать сначала python.org питонов, а затем базовую среду Anaconda. Приглашение Anaconda будет использовать активную среду. #! /usr/bin/env python2 или python3 попытается использовать только python.org питонов и потерпит неудачу, если они не найдены.

Установка Python 2.7 из python.org установщиков (и разрешение установщику устанавливать ассоциации файлов) сломает pylauncher, и переустановка не исправит его. Вместо этого установите Computer\HKEY_CLASSES_ROOT\Python.File\Shell\open\command значение по умолчанию "C:\WINDOWS\py.exe" "%L" %*, чтобы вернуться к настройке pylauncher (при условии, что вы использовали пакеты launchwin.* для его установки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...