Configure o Cygwin com executáveis do Python

0

Eu tenho um laptop Windows 8 no qual eu tenho usado o Python há algum tempo. Eu tenho ambos 3.3 e 2.7 instalados, juntamente com várias bibliotecas. Eu instalei recentemente o Cygwin e estou gostando imensamente. Notei o Python na lista de pacotes instaláveis e queria saber se seria possível dizer ao Cygwin para usar os executáveis do Python, em vez de tentar duplicar tudo dentro do Cygwin.

Isso é possível? É uma boa ideia? Se sim, como eu faria isso?

    
por Matthew 23.08.2014 / 20:11

1 resposta

1

É definitivamente possível. A maneira mais fácil de fazer isso seria chamar o Windows Python explicitamente quando você quiser executar um script Python. Se você estivesse fazendo isso a partir de um shell do Cygwin, provavelmente desejaria um comando semelhante a este:

/cygdrive/c/Python27/python.exe script.py

Isso chama o Python com seu script como um argumento e deve executá-lo praticamente da mesma maneira como se fosse executado no Windows.

No entanto, "possível" não é o mesmo que "sensato". Eu recomendo strongmente usar o Cygwin Python de dentro do Cygwin; Há um monte de maneiras em que Cygwin e Windows Python irão interagir de maneiras ruins ou inesperadas. Fora do topo da minha cabeça:

  • O Windows Python espera um terminal que atue como o terminal cmd do Windows; O MinTTY e outros terminais Cygwin se comportam de maneira diferente, então é provável que você veja um comportamento inesperado relacionado à impressão de coisas no terminal. Como um exemplo específico, se um comando do Python estiver imprimindo um monte de mensagens para o terminal a uma taxa lenta, como mensagens de progresso em andamento para algum processo de longa duração, elas provavelmente serão armazenadas em cache e escritas de uma só vez quando houver 64 kB deles

  • O shell do Cygwin expande automaticamente globs, como *.txt , antes de passá-las como argumentos para um script. A linha de comando do Windows não faz isso, o que significa que qualquer coisa envolvendo caracteres como * ou ? como argumento de script pode ser interpretada de maneiras inesperadas.

  • Os programas Cygwin geralmente usam finais de linha no estilo Linux ( LF ), enquanto os programas do Windows geralmente usam finais de linha no estilo do Windows ( CRLF ). O Cygwin e o Windows Python não são diferentes, e você pode obter erros ou comportamentos inesperados com manipulação e processamento de strings se os finais de linha em um arquivo não forem como o programa espera.

Nada disso é um problema que não pode ser trabalhado com cuidado, atenção e conscientização, mas se você optar por usar o Cygwin Python no Cygwin, é muito menos provável que você precise contornar os problemas no primeiro. lugar.

    
por 24.08.2014 / 20:46