Если я пишу скрипт python, используя только стандартные библиотеки python, используя Python 2.6, он будет работать во всех операционных системах, пока установлен python 2.6?Программы на Python в разных операционных системах
ответ
Зависит. Есть несколько частей стандартных библиотек Python, которые доступны только на определенных платформах. Эти части отмечены в документации Python.
Вы также должны быть осторожны с тем, как вы обрабатываете такие вещи, как пути к файлам - используя os.path.join()
и такие, чтобы убедиться, что пути отформатированы правильно.
Да, если вы не используете модули, зависящие от os.
Edit: Мой ответ казалось коротким и не слишком точки на основе комментариев
Я не обращаясь портативными программированиями в целом.
Это будет означать уход за упаковкой и манипуляцией двоичными данными, проблемы с расширением, пути, как в windows/unix, «\ r \ n» в тексте Windows и многие другие.
Но что касается переносимости модулей python, нет никаких сомнений.
Они переносные.
Как правило, существуют модули, которые доступны только на конкретной платформе, и если вы их используете, ваша мобильность будет сокращена.
-1: Разве это не так, как сказать, что все будет работать, за исключением бит, который не будет? –
@ Lasse V. Karlsen: Не совсем. Возможно, я сделал короткий, короткий ответ. Но это означало то же самое, что и ответ, представленный Амбером выше. Существуют зависимые от os модули, которые, если вы используете в сценариях, не будут переноситься в другую ОС. Эти доступные для ОС модули хорошо документированы. – pyfunc
Попробуйте пример «magic number 26» в моем ответе - он использует только встроенные функции. –
Вам нужно быть внимательным при чтении двоичных файлов. Всегда используйте режимы открытия файлов «rb», «wb» и т. Д. Вы можете уйти с 'r' и т. Д. В Unix/Linux/и т. Д., Но это действительно важно для Windows. Неинтуитивно, CSV-файлы являются двоичными.
Поучительное упражнение: выяснить, почему этот код производит 26 на Windows, а не 128, что он будет производить на коробке, отличной от Windows:
>>> s = ''.join(map(chr,range(128)))
>>> len(s)
128
>>> f = open('junk.txt', 'w')
>>> f.write(s)
>>> f.close()
>>> len(open('junk.txt').read())
26
Избегайте жесткое кодирование пути к файлам.
Не предполагайте, что вы можете разбить unicode (или unicode с использованием utf8) на консоли и сделать его разборчивым или вообще.
Некоторые модули Python не устанавливаются автоматически на некоторых дистрибутивах Linux ... вам нужен отдельный пакет «dev».
Не совсем проблема с операционной системой, но некоторые операционные системы работают на бигдианских боксах, поэтому, если вы работаете над написанием/чтением двоичных форматов, вам нужно учитывать утверждение.
Подсказка (для упражнения): попробуйте вручную пройти через вход и взгляните на таблицу ASCII. –
- 1. Таймеры в операционных системах
- 2. Те же сайты в разных операционных системах
- 3. Зачем запускать 16-разрядные программы на x86 операционных системах медленнее?
- 4. Программисты и сегментация в операционных системах
- 5. WPF - тот же стиль contexmenu на разных операционных системах
- 6. Поиск файлов в операционных системах
- 7. Функция Вилка в операционных системах
- 8. Обработка файлов в C в разных операционных системах
- 9. Веб-страницы выглядят по-разному в разных операционных системах?
- 10. Сколько защитных колец используется в разных операционных системах Windows?
- 11. Как выполнять шрифты и текст в разных операционных системах
- 12. - программы, закодированные отдельно для разных операционных систем?
- 13. Как отключить использование программ Python в определенных операционных системах?
- 14. Java Элементы позиционирования Swing по-разному в разных операционных системах
- 15. Embedded шрифт Выпуск на различных операционных системах
- 16. Повторное использование страниц в многопроцессорных операционных системах
- 17. Сегментация памяти в современных операционных системах
- 18. В разных системах поведение программы различно. Зачем ?
- 19. роль командного интерпретатора в операционных системах
- 20. вопросов с сигналами в операционных системах
- 21. О бесплатных задачах в операционных системах
- 22. PHP и атрибуты файлов в операционных системах
- 23. База данных MySQL в нескольких операционных системах
- 24. SWT на разных системах
- 25. Почему размер JFrame для Java GUI разных размеров в разных операционных системах?
- 26. Есть ли разница в рендеринг основных браузеров в операционных системах?
- 27. Как обрабатывать различные последовательности событий в Qt на разных операционных системах?
- 28. DNS не обновляется в операционных системах, которые уже просматривали сайт
- 29. errno location на разных системах
- 30. Идентичная сборка на разных системах
Упомянуто для упоминания путей. – kindall