Щоб запустити 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 -iCygwin або 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для виходу.