Python脚本在升华文本中运行时不起作用,但在命令行中起作用

2024-05-29 11:28:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常简单的脚本,它只读取一个文件,当我从Sublime文本中运行它时,它现在可以工作了,但是当我从命令行调用Python时,它工作得很好。我想知道为什么

似乎在open()中,一种情况下的默认编码是utf-8,而在另一种情况下则不是。为什么会这样?Python可执行文件对于这两个文件都是相同的,并且在路径中似乎都有相同的核心Python库

脚本:

import sys
print(sys.executable)
print(sys.path)
open('foo.txt').read()
print('Life is wonderful.')

激活virtualenv后从命令行运行时的输出:

/Users/bemmu/Dropbox/b2/babynames/env/bin/python3
['/Users/bemmu/Dropbox/b2/babynames', '/Users/bemmu/Dropbox/b2/babynames', '/Users/bemmu/b2/python_include_dir', '/Library/Python/2.5/site-packages/elementtree-1.2.7_20070827_preview-py2.5.egg', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', '/Users/bemmu/Dropbox/b2/babynames/env/lib/python3.6/site-packages', '/Users/bemmu/Dropbox/b2/babynames/env/lib/python3.6/site-packages/fasttext-0.9.2-py3.6-macosx-10.6-intel.egg']
Life is wonderful.

从升华文本3运行时的输出:

/Users/bemmu/Dropbox/b2/babynames/env/bin/python3
['/Users/bemmu/Dropbox/b2/babynames', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', '/Users/bemmu/Dropbox/b2/babynames/env/lib/python3.6/site-packages', '/Users/bemmu/Dropbox/b2/babynames/env/lib/python3.6/site-packages/fasttext-0.9.2-py3.6-macosx-10.6-intel.egg']
Traceback (most recent call last):
  File "/Users/bemmu/Dropbox/b2/babynames/foo.py", line 4, in <module>
    open('foo.txt').read()
  File "/usr/local/bin/../../../Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)
[Finished in 0.0s with exit code 1]
[cmd: ['env/bin/python3', '/Users/bemmu/Dropbox/b2/babynames/foo.py']]
[dir: /Users/bemmu/Dropbox/b2/babynames]
[path: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/texbin:/usr/local/go/bin:/opt/X11/bin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/usr/local/git/bin]

构建系统:

{
    "cmd": ["env/bin/python3", "$file"],
    "selector": "source.python",
    "file_regex": "^\\s*File \"(...*?)\", line ([0-9]*)"
}

Tags: envbinlibpackagesusrlibrarysiteframework

热门问题