[英]copy then paste produces garbage in python terminal mac
我在Mac OS X(10.14.3)上使用文本編輯器(Sublime Text 3),在另一個窗口中是運行python(3.7)解釋器的Terminal窗口。
我從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()
其他混合代碼來自我昨天編寫的某些python。 從那時起,我已經使用了無數次復制/粘貼操作,所以我不明白為什么我最近的復制(cmd + v)會引導昨天的工作,同時出現明顯的縮進錯誤,今天的代碼等等。
鍵入command + shift + v並不更好:只是不同的垃圾。
到底是怎么回事?
Mac OS X:MacPorts安裝的10.14.3 python
未安裝Tkinter:我不喜歡IDLE。
我使用的配置類似於您的配置,命令行+ Xcode,我嘗試將您的代碼從IDE復制並粘貼到命令行中,並且一切正常。 因此,我認為問題不在命令行內。 我將檢查剪貼板(“查找器”->“編輯”->“顯示剪貼板”)以查看代碼是否被正確復制,它應該與在IDE中看起來完全一樣。 如果不是,那么我建議注釋掉不需要的代碼,然后直接從命令行運行文件。
.py文件可以直接從命令行運行,而無需使用python3 path/to/file
命令啟動python解釋器,為此,您可以將文件直接拖到終端中,它將自動輸入路徑。 通過使用解釋器shebang #!
可以進一步簡化此操作#!
在.py文件本身中。 可以通過導入系統import sys
和print(sys.executable)
來找到解釋器的路徑。 這給出了解釋器的路徑,然后將shebang添加到該路徑,並將其放在.py文件的頂部,對我來說,它看起來像這樣: #!/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
,但是由於是從MacPort安裝的,因此可能有所不同。 通過使用shebang,只需輸入文件路徑即可在命令行中運行腳本。 例如,將文件拖到終端中,按Enter鍵,它將運行。 您還可以使用shift + up arrow
的終端快捷方式,然后按Enter鍵再次運行最后一個命令,從而節省了將文件拖到終端中的時間。
好,
最終發現,pboard進程已損壞。
修復的最佳方法是在活動監視器或終端中pboard
進程
使用
現在一切正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.