我在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()
这另一个混杂的代码来自我昨天写的一些python。从那时起,我已经使用了无数次复制/粘贴操作,所以我不明白为什么我最近的复制(cmd + v)会引导昨天的工作,并出现明显的缩进错误,今天的代码等等。
键入 command + shift + v 并不好:只是不同的垃圾内容。
到底是怎么回事?
Mac OS X:10.14.3
MacPorts安装的python
未安装Tkinter:我不喜欢IDLE。
答案 0 :(得分:0)
我使用的配置类似于您的配置,命令行+ Xcode,我尝试将您的代码从IDE复制并粘贴到命令行中,并且一切正常。因此,我认为问题不在命令行内。我将检查剪贴板(“查找器”->“编辑”->“显示剪贴板”)以查看代码是否正确复制,它应该与在IDE中的外观完全一样。如果不是这样,我建议注释掉不需要的代码,然后直接从命令行运行文件。
.py文件可以直接从命令行运行,而无需使用命令python3 path/to/file
启动python解释器,为此您可以将文件直接拖到终端中,它将自动输入其路径。通过使用.py文件本身中的解释器shebang #!
,可以进一步简化此操作。可以通过导入系统import sys
和print(sys.executable)
找到解释器的路径。这给出了解释器的路径,然后将shebang添加到该路径并将其放在.py文件的顶部,对我来说,它看起来像这样:#!/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
,但是由于您是从MacPort安装的,因此不同。通过使用shebang,只需输入文件路径即可在命令行中运行脚本。即将文件拖到终端中,按Enter键,它就会运行。您也可以使用shift + up arrow
的终端快捷方式,然后按Enter键再次运行最后一个命令,从而节省了将文件拖到终端的时间。
答案 1 :(得分:0)
好,
最终确定了Pboard进程已损坏。
修复的最佳方法是在活动监视器或终端中杀死pip freeze
进程
使用
现在一切正常。