Выполнить буфер AquaMacs, который имеет "из __future__ import ..."
Запустив AquaEmacs, я хочу выполнить буфер (Cc Cc) в Python.
Буфер начинается с:
from __future__ import print_function
Выполнение в AquaEmacs начинается с:
import sys,imp
if'test_one_liners' in sys.modules:
imp.reload(test_one_liners)
else:
import test_one_liners
где test_one_liners.py - мой файл. Это дает эту ошибку:
SyntaxError: from __future__ imports must occur at the beginning of the file
Кто-нибудь знает, где и как это исправить?
Позвольте мне добавить информацию еще раз, чтобы прояснить.
Создайте этот буфер:
from __future__ import print_function
print("Hello")
Используйте File/Change Buffer Mode/Python, чтобы сделать его Python, и Cc Cc, чтобы выполнить его; это не должно быть сохранено. Буфер записывается во временный файл и завершается с ошибкой SyntaxError: from __future__ imports must occur at the beginning of the file
, Трассировка включает в себя сгенерированный файл, который содержит ссылку на временный файл. Что должно произойти вместо этого, печать Hello.
3 ответа
Это была ошибка в python-mode.el
который исправлен в текущем выпуске. Похоже, Aquamacs в комплекте с более старой версиейpython-mode.el
,
Отчет об ошибке здесь: ошибка #1063884 и исправление здесь.
Вам следует обновить пакет python-mode.el.
Ты говоришь
from __future__ import print_function
, но сообщение об ошибке говорит оfrom __future__ imports
--- Обратите вниманиеs
в конце этого.Вы говорите, что " test_one_liners.py - это мой файл". И вы говорите, что
from __future__ import print_function
находится в начале "буфера". Но в сообщениях об ошибках говорится, что он не находит это заклинание в начале файлаtest_one_liners.py
, Возможно, ваш текущий буфер, в котором есть это заклинание, не для этого файла?
Но если бы мне пришлось угадывать, я бы предположил, что проблема заключается в очевидной опечатке в № 1. ("Кажется очевидным", потому что вы, возможно, просто неправильно набрали сообщение, и в файле может быть указано правильное заклинание.)
Как было сказано, это исправлено в текущем транке.
https://launchpad.net/python-mode
При проверке вашего примера получите "ImportError: Нет модуля с именем test_one_liners", чего и следовало ожидать.
Второй пример печатает красиво "Привет".