LINUX.ORG.RU

запустить MinGW и выполнить в нем команду

 , ,


0

1

Мне стыдно в этом признаться, делаю скрипт на Python для Windows 7, но меня оправдывает то что в Linux это всё уже работает, теперь вот еще платформу добавить надо.

Чтобы использовать нужную инфраструктуру, я использую MinGW 64-bit. Всё что я хочу оно работает если запускать MinGW вручную и там команду вбивать. Но как запустить MinGW окружение при помощи вызова os.system? Там есть msys2_shell.cmd - да, открывается shell в отдельном окне.

Мне нужно чтобы MinGW окружение просто стартануло в текущей сессии, либо как-то заставить появившееся MinGW выполнить нужную мне команду (без прописки каких-либо конфиг файлов). Как это сделать?

P.S. Похоже просто прописывание bin каталога в PATH не помогает, нужно «полное погружение» чтобы скрипт отработал.

Нужно в PATH не только bin добавлять. Что конкретно ты пытаешься запустить и какие у тебя ошибки?

buddhist ★★★★★
()

В шебанг добавь прямой путь до исполняемого файла mingw-w64/python (C:/msys64/mingw64/bin/python3 там или типа того). os.system выполняется в msys2/cygwin окружении и так, ты что-то делаешь не так.

anonymous
()
Ответ на: комментарий от buddhist

А что еще следует добавить? Нужно чтобы оно начало воспринимать все эти UNIX-штучки в текущей сессии, видимо что-то должно быть запущено.

Но сразу спрошу - как же запустить что-то при старте сессии MinGW? Так, чтобы конфиги не править и прочие RC. Хотя от безысходности мне придется и на это пойти...

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Я использую Anaconda, мне бы не желательно подменять на более ограниченную версию. Хотя для самого скрипта может есть смысл ограничиться...

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от buddhist

Хотел бы дополнить свой ответ, если только лишь добавить в PATH bin то скрипт, прекрасно работающий в оболочке MinGW, в обычном cmd.exe уже выдает многочисленные ошибки. В частоности аноним прав, Anaconda 3 выдает шквал ошибок, особенно заметная «OS is not supported». Явно что-то в окружении не то, MinGW это странный волшебный костыль, который я пока не сильно понимаю.

I-Love-Microsoft ★★★★★
() автор топика
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

В баше запускай. Какой ещё cmd? Для cmd скачивай питон для виндовс и правь переменные венды же. «Оболочка MinGW» наверно баш запускает, а он читает .profile .bashrc и всё остальное. Msys2 полноценное gnu/winnt окружение, к тому же mingw это не полноценное совместимое с линуксами окружение и в основном компилятор gcc, cygwin же совместимо (там либа с позиксом и всем остальным) и это важно в первую очередь для скриптов и любого не кроссплатформенного софта (он обламывается не найдя линуксофичи в венде).

anonymous
()
Ответ на: комментарий от anonymous

Ты намекаешь, что если я пропишу mingw64 в PATH и запущу там bash -c <моя команда> то так я смогу выполнить команду, т.е. с запуском баша автоматом приедут все «линуксовые штучки»? Если я это правильно понял, то попробую завтра. Благодарю за подсказку.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Да, примерно так. Только у mingw64 какие-то проблемы с libreadline и всем остальным когда включаешь цветной текст в conemu, но если цвет не нужен, то должно работать наверно. Линуксовые штучки только в оверлее msys (оно cygwin на самом деле), в оверлеях mingw64 понерфленные версии с не полной совместимостью.

anonymous
()
Ответ на: комментарий от buddhist

Благодарю анонимуса, и всех кто отписался в теме. В самом деле, достаточно лишь прописать в PATH bin и всё будет работать. Чтобы работало MinGW окружение достаточно запустить команду через bash -c и скрипт отработал как положено. При запуске через bash работают такие команды как uname и прочие - что и требовалось.

I-Love-Microsoft ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.