当 运行 line_profiler 时,如何修复 python 可执行文件本身的异常语法错误?
How do I fix an unusual SyntaxError in the python executable itself when running line_profiler?
这是一个奇怪的。
首先:这不是我自己编写或正在导入的 python 脚本文件的编码问题(参见 Working with UTF-8 encoding in Python source及其许多重复项)。
我是 运行 优秀 line_profiler 超过虚拟环境中的一些 python2.7 代码。 SyntaxError 指向 python 可执行文件本身!很明显(?)我不能在顶部添加编码行。
这可能是 line_profiler 的问题吗?不然怎么办?
这是回溯:
(myenv)$ kernprof -l python main.py
Wrote profile results to python.lprof
Traceback (most recent call last):
File "[snip]/myenv/bin/kernprof", line 8, in <module>
sys.exit(main())
File "[snip]/myenv/lib/python2.7/site-packages/kernprof.py", line 226, in main
execfile(script_file, ns, ns)
File "[snip]/myenv/bin/python", line 1
SyntaxError: Non-ASCII character '\xcf' in file [snip]/myenv/bin/python on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
答案是使 main.py
可执行,即将 shebang 添加到顶部:
#!/usr/bin/env python
和chmod +x main.py
- 那么:
kernprof -l ./main.py
谁知道!
这是一个奇怪的。
首先:这不是我自己编写或正在导入的 python 脚本文件的编码问题(参见 Working with UTF-8 encoding in Python source及其许多重复项)。
我是 运行 优秀 line_profiler 超过虚拟环境中的一些 python2.7 代码。 SyntaxError 指向 python 可执行文件本身!很明显(?)我不能在顶部添加编码行。
这可能是 line_profiler 的问题吗?不然怎么办?
这是回溯:
(myenv)$ kernprof -l python main.py
Wrote profile results to python.lprof
Traceback (most recent call last):
File "[snip]/myenv/bin/kernprof", line 8, in <module>
sys.exit(main())
File "[snip]/myenv/lib/python2.7/site-packages/kernprof.py", line 226, in main
execfile(script_file, ns, ns)
File "[snip]/myenv/bin/python", line 1
SyntaxError: Non-ASCII character '\xcf' in file [snip]/myenv/bin/python on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
答案是使 main.py
可执行,即将 shebang 添加到顶部:
#!/usr/bin/env python
和chmod +x main.py
- 那么:
kernprof -l ./main.py
谁知道!