Это определенно возможно. Самый простой способ сделать это - явно вызвать Windows Python, когда вы хотите запустить скрипт Python. Если вы делаете это из оболочки Cygwin, вам, вероятно, понадобится команда, которая выглядит примерно так:
/cygdrive/c/Python27/python.exe script.py
Это вызывает Python с вашим скриптом в качестве аргумента, и он должен запускаться почти так же, как если бы он запускался из Windows.
Однако "возможный" - это не то же самое, что "разумный". Я настоятельно рекомендую использовать Cygwin Python из Cygwin; Есть множество способов, которыми Cygwin и Windows Python будут взаимодействовать плохим или неожиданным образом. С верхней части моей головы:
Windows Python ожидает терминал, который действует как терминал Windows cmd; MinTTY и другие терминалы Cygwin ведут себя по-разному, поэтому вы, скорее всего, увидите неожиданное поведение, связанное с печатью вещей на терминал. В качестве конкретного примера, если команда Python печатает кучу сообщений на терминал с низкой скоростью, например, текущие сообщения о ходе выполнения для какого-то длительного процесса, они, вероятно, будут кэшироваться и записываться одновременно, когда есть 64 КБ из них
Оболочка Cygwin будет автоматически расширять глобусы, такие как *.txt
, прежде чем передавать их в качестве аргументов в скрипт. Командная строка Windows этого не делает, что означает что-либо, включающее такие символы, как *
или ?
в качестве аргумента сценария может быть интерпретирован неожиданным образом.
В программах Cygwin обычно используются окончания строк в стиле Linux (LF
), в то время как в программах Windows обычно используются окончания строк в стиле Windows (CRLF
). Cygwin и Windows Python ничем не отличаются, и вы можете получить ошибки или неожиданное поведение при обработке и обработке строк, если окончания строк в файле не соответствуют ожиданиям программы.
Ни одна из этих проблем не может быть решена с осторожностью, вниманием и осознанностью, но если вы просто решите использовать Cygwin Python в Cygwin, у вас гораздо меньше шансов обойти проблемы в первую очередь.