копирование затем вставка производит мусор в терминале Python Mac - PullRequest
0 голосов
/ 16 февраля 2019

Я нахожусь на Mac OS X (10.14.3), использую текстовый редактор (Sublime Text 3) и, в другом окне, окно терминала, в котором работает интерпретатор python (3.7).

Код, который я копируюиз Sublime (с помощью cmd + c) -

def count_numbers():
    for i in range(10):
        if i % 3 == 0 : 
            print (i)

count_numbers()

Но вывод, который я получаю, когда копирую вставить в терминал (я включил команду для открытия интерпретатора python):

$ python
Python 3.7.2 (default, Dec 30 2018, 08:55:50) 
[Clang 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

[здесь я нажимаю cmd + v ]

>>> def count_numbers():
...         return a * x + b
... z=[invcdf(random()) for i in range(10)]
  File "<stdin>", line 3
    z=[invcdf(random()) for i in range(10)]
    ^
SyntaxError: invalid syntax
>>>     if t2 is None:
  File "<stdin>", line 1
    if t2 is None:
    ^
IndentationError: unexpected indent
>>>         # print (i)
... 
>>> count_numbers()

Этот другой смешанный код взят из некоторого питона, который я писал вчера.С тех пор я использовал копирование / вставку бесчисленное количество раз, поэтому я не понимаю, почему моя недавняя копия (cmd + v) направляет вчерашнюю работу в комплекте с явными ошибками отступов, битами сегодняшнего кода и т. Д.

Набрав command + shift + v не лучше: просто другой мусор.

Что происходит?

Mac OS X: 10.14.3 Python установленMacPorts
Tkinter не установлен: мне не нравится IDLE.

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

OK,

наконец-то выяснилось, что процесс pboard был поврежден.
Лучший способ исправить это уничтожить процесс pboard в мониторе активности или терминале

с помощью

http://tips.applenws.com/copy-paste-not-working-on-mac-heres-how-to-fix-a-stuck-clipboard/2018/tips-tricks

Теперь все работает хорошо.

0 голосов
/ 16 февраля 2019

Конфигурация, которую я использую, похожа на вашу, командную строку + Xcode, я попытался скопировать и вставить ваш код из IDE в командную строку, чтобы все работало, как ожидалось.Поэтому я считаю, что проблема не в командной строке.Я бы проверил буфер обмена (Finder -> Edit -> Show Clipboard), чтобы увидеть, правильно ли скопирован код, он должен выглядеть точно так, как он выглядит в IDE.Если нет, то я бы предложил закомментировать ненужный код и запустить файл непосредственно из командной строки.

Файл .py можно запустить непосредственно из командной строки без запуска интерпретатора python с помощью команды python3 path/to/file,для которого вы можете перетащить файл непосредственно в терминал, и он автоматически введет свой путь.Это можно еще больше упростить, используя интерпретатор shebang #! в самом файле .py.Путь к интерпретатору можно найти, импортировав систему import sys и print(sys.executable).Это дает путь к интерпретатору, затем добавьте shebang к пути и поместите его в начало файла .py, для меня это выглядит так: #!/Library/Frameworks/Python.framework/Versions/3.7/bin/python3, но, поскольку вы установили его из MacPort, он может отличаться.Шебанг позволяет запускать скрипт в командной строке, просто введя путь к файлу.то есть перетащите файл в терминал, нажмите Enter, и он запустится.Вы также можете использовать ярлык терминала shift + up arrow, а затем нажать Enter, чтобы снова запустить последнюю команду, что сэкономит вам время на перетаскивание файла в терминал.

...