Я уже пробовал sys.platform, platform.system() и os.name, но ни один из них не возвращал что-то связанное с cygwin (я всегда получаю win32, Windows и nt в качестве вывода). Может быть, потому, что мой python был установлен на windows (8.1), а не через cygwin. Мне нужно определить, выполняется ли мой файл python с помощью cygwin или cmd.Как определить терминал, на котором запущен python?
ответ
Cygwin использует пути в стиле Linux; Таким образом, вы можете быть в состоянии проверить разделитель пути:
import sys
import os.path
def running_cygwin():
return sys.platform == 'win32' and os.path.sep == '/'
(я не имею Cygwin здесь, так что это не тестировалась.)
Это неправильно, Cygwin Python имеет 'sys.platform == 'cygwin''. –
Пауло говорит, что он проверил 'sys.platform'; так что это, вероятно, неверно для всех версий ... – Tobias
Я думаю, что здесь существует путаница между терминалом Python и Python Cygwin. Вероятно, он запускал Windows Python внутри подсказки Cygwin (в этом случае для проверки было бы 'sys.stdout.isatty()'). –
- 1. Пакетный файл, на котором запущен скрипт Python
- 2. Как определить порт, на котором работает Rsyslog?
- 3. Как открыть терминал, в котором выполняется файл python
- 4. , на котором запущен мой программный код asterisk
- 5. Как определить, запущен ли я на консоли
- 6. Как найти локальный порт, на котором запущен экземпляр rails?
- 7. Упаковка скрипта Python, который может быть запущен на компьютере, на котором не установлен Python?
- 8. Определить, был ли запущен поток
- 9. Заблокирует выполнение кавычек на потоке, на котором он запущен?
- 10. Удаленно создайте vhost на контейнере докера, на котором запущен rabbitmq
- 11. , на котором работает python?
- 12. Как определить, был ли запущен скрипт python в первый раз?
- 13. Как определить, все еще запущен процесс Node?
- 14. Как определить, поддерживает ли терминал ANSI с помощью python?
- 15. Как проверить, запущен ли я в оболочке (есть терминал) в Python?
- 16. Относительный shebang: Как написать исполняемый скрипт, на котором запущен портативный интерпретатор, который поставляется с ним
- 17. Как распечатать \ [и \] на терминал из python?
- 18. Linux: как определить, как был запущен процесс
- 19. SVN и переименование сервера, на котором он запущен
- 20. Создайте сервер, на котором запущен PHP с Gulp и Livereload
- 21. Приложение, на котором запущен сервер nginx, не отображается
- 22. Удаление файлов только для чтения на компьютере с Windows, на котором запущен скрипт python
- 23. Получите IP-адрес хоста, на котором запущен движок докеров
- 24. Как определить, почему сценарий Greasemonkey не запущен
- 25. Как определить, запущен ли медиа-проигрыватель
- 26. Как определить, был ли запущен javascript-конструктор?
- 27. Heroku: как определить, запущен ли мастер
- 28. Как определить программно, если ehcache запущен?
- 29. Как определить, совместим ли терминал с цветом?
- 30. Как определить, запущен ли модуль scala как сценарий
Так интерактивный или сценарий? – Zizouz212
Вы можете сделать это взломанным способом. Вы можете попытаться выполнить/bin/sh, который будет выполняться в Cygwin, но не в DOS. Вы могли бы сделать наоборот и попытаться запустить dir, который будет работать только под DOS. – Sirens
Вам нужно посмотреть на свой родительский процесс, что-то вроде psutil, должно это сделать https://pypi.python.org/pypi/psutil – cdarke