Согласно документации MSDN Системы. Тип [1] необходимо быть в состоянии сериализировать Систему. Текстовый объект. Однако, поскольку ошибка явно относится к Системе. Текст. StringBuilder, который вероятен класс, который вызывает ошибку сериализации.
[1] Класс Типа (Система) - http://msdn.microsoft.com/en-us/library/system.type.aspx
TextMate использует значение переменной TM_PYTHON
, чтобы найти путь к интерпретатору Python. Хорошее решение - воспользоваться возможностью TextMate определять такие переменные, как TM_PYTHON
, для каждого проекта:
Откройте новый или существующий проект TextMate ( Файл -> Новый проект
или Файл -> Открыть
)
Отмените выбор любого файла на боковой панели списка проектов.
Щелкните значок Получить информацию
( i ) на боковой панели. Появится панель Project Information
.
Щелкните +, чтобы добавить новую переменную.
Введите TM_PYTHON в поле Variable и полный путь к желаемому питону в поле Value (например, ] /usr/local/bin/python3.1
).
Закройте информационное окно и сохраните проект ( Файл
-> Сохранить проект как
).
Затем вы можете добавлять файлы по мере необходимости в проект, и они будут запущены под выбранным питоном с помощью команды Run Script пакета TextMate Python. Возможно, вы захотите сохранить проект Python 3
, скажем, для запуска специальных сценариев под Python 3. Для более крупных проектов вы все равно захотите создать для него отдельный проект TextMate.
Чтобы изменить версию Python, используемую глобально в TextMate
:
В строке меню TextMate
откройте TextMate
-> Настройки
щелкните панель Дополнительно
щелкните вкладку Переменная оболочки
щелкните +
, чтобы добавить новую переменную
введите TM_PYTHON
в поле Переменная
и полный путь к питону в поле Значение
(возможно, / usr / local / bin / python3.1
)
Как указывает Алекс, вы можете нарушить другие функции TextMate, изменив версию Python глобально, поэтому изменение для каждого проекта, вероятно, будет лучшим решением.
ОБНОВЛЕНИЕ (2010-10-31) :
Есть другой подход, который может быть проще использовать для некоторых проектов. Команда Run
в пакете Python TextMate
, похоже, учитывает строку shebang в выполняемом файле. Так, вместо изменения TM_PYTHON
, вы можете указать путь к интерпретатору, который будет использоваться, включив первую строку следующим образом:
#!/usr/local/bin/python3.1
# sample code to show version
import sys
print(sys.version_info)
Во многих случаях вы бы предпочли не использовать hardwire абсолютное путь, но управлять использованием через обычную переменную среды оболочки PATH
. Традиционно для этой цели используется / usr / bin / env
. Однако при работе под TextMate
ваши файлы профиля оболочки обычно не используются, поэтому никакие изменения в PATH не отображаются там, включая, возможно, / usr / local / bin
или / opt / local / bin
или где угодно, где находится желаемая команда python3
. Чтобы обойти это, вы можете добавить или изменить глобальную переменную оболочки PATH
на TextMate
-> Предпочтения
(см. Выше) со значением, скажем, / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin
. Затем вы можете использовать более общую строку shebang вроде этой:
#!/usr/bin/env python3
(Кажется, все это работает с последней версией vanilla TextMate
и ее пакетом Python: никаких гарантий относительно более ранних версий или других пакетов Python.)
Имя «функтор» традиционно использовалось в теории категорий задолго до того, как на сцене появился C ++. Это не имеет ничего общего с концепцией функтора в C ++. Лучше использовать имя объект функции вместо того, что мы называем «функтором» в C ++. Вот как другие языки программирования вызывают аналогичные конструкции.
Используется вместо простой функции:
Особенности:
Минусы:
Используется вместо указателя функции:
Особенности:
Минусы:
reload
, которое исчезло в Python 3, неоднократно упоминается в потоке). Тем не менее, это может сработать, если вы не используете или не нуждаетесь в большей части функциональности TextMate (например, набор текста LaTeX упоминался как нечто, что полностью ломается, когда вы заставляете TextMate использовать Python 3 вместо Python 2). Опоздал на вечеринку, извините! Я так понимаю, вы хотите запустить скрипт, используя "встроенный" интерпретатор TextMate? Я нашел самое простое решение - добавить shebang, который работает очень хорошо;
#!/usr/bin/env python3
для python 3.1 или;
#!/usr/bin/env python
для системного python по умолчанию, хотя последний излишен для данного упражнения.