Щоб запустити Windows Python з Cygwin, завжди виконайте це:
$ cygstart python
Ніколи цього не роби:
$ python -i
Це поширюється і на Windows IPython. Завжди робіть це:
$ cygstart ipython
Ніколи цього не роби:
$ ipython -i
Перш ніж ми перейдемо до того, чому все ж поговоримо ${PATH}
.
Пітон і ${Path}
: Нарешті разом!
Вищенаведена відповідь передбачає, що python
у вашій нинішній ${PATH}
системі є рідною Windows, а не встановленою Cygwin версією Python. Якщо це остання справа, абсолютний шлях вашого Windows Python повинен бути явно пройдений cygstart
. Наприклад:
$ cygstart /cygdrive/c/Miniconda3/python.exe
Якщо ви запускаєте Windows Python з будь-яким видом частоти, ви, ймовірно, хочете зробити це остаточним python
. Якщо ви встановили популярний дистрибутив Python (наприклад, Anaconda, Miniconda, Enthought Canopy), це означає, що ви. Для цього додайте ${PATH}
абсолютний шлях до каталогу, що міститься python.exe
при запуску оболонки (наприклад, в ~/.bashrc
). Наприклад:
# Stash this somewhere.
export PATH="/cygdrive/c/Miniconda3:${PATH}"
Що трапилося з python -i
або cmd.exe
, Chummer?
Підтримуючи ще одну цілеспрямовану рекомендацію запустити Windows Python через python -i
Cygwin або python
з терміналу, який не є Cygwin, я лише похитаю головою.
Ні. Ні. Ні. В обох випадках ви робите неправильно.
У разі запуску python -i
зсередини Cygwin ви втрачаєте здорові прив’язки клавіатури (наприклад, < Вгору > та < Вниз >, щоб перейти через історію відтворення, < Ctrl-D >, щоб припинити REPL) і, можливо, що ще важливіше, буферизація виводу.
У разі запуску python
всередині терміналу, який не є Cygwin, ви втрачаєте Cygwin. Ви використовуєте Cygwin з причини - імовірно, тому, що ви віддаєте перевагу сумісності з POSIX і всього, що тягне за собою (наприклад, розумну оболонку) перед звичайною альтернативою Windows.
У чому це таке куріння гаряче cygstart
?
Немає підстав кидати Цигвіна. Однак є всі підстави запустити вбудовану програму Windows, а отже, Windows Python з Cygwin як рідний процес Windows, а не як сумісний з POSIX процесом Cygwin. Що це не так.
Введіть cygstart
.
Ця стандартна утиліта Cygwin перевантажена для інтерфейсу різними надзвичайно цікавими способами з рідними програмами Windows, шляхами та URI. З нашою метою передача cygstart
імені команди у поточному виконанні ${PATH}
цієї команди як рідний процес Windows, зберігаючи синтаксис та семантику оболонки Windows у присутності Cygwin.
тл; д-р
Програми для рідних Windows, включаючи Windows Python та IPython, завжди повинні запускатися з Cygwin за допомогою cygstart
команди.
Ctrl-D
для виходу.