У меня есть ноутбук с Windows 8, на котором я некоторое время использовал Python. У меня установлены 3.3 и 2.7, а также несколько библиотек. Я недавно установил Cygwin, и мне это очень нравится. Я заметил Python в списке устанавливаемых пакетов и подумал, можно ли сказать Cygwin использовать исполняемые файлы Python вместо того, чтобы пытаться дублировать все в Cygwin.

Это возможно? Это хорошая идея? Если так, как бы я это сделал?

1 ответ1

1

Это определенно возможно. Самый простой способ сделать это - явно вызвать 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, у вас гораздо меньше шансов обойти проблемы в первую очередь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .