Python-另一个编码问题. Windows 8.1,均为最新的python.点引发异常

我在Windows 8.1机器上安装了全新的python版本.我尝试了Python 2.7.8和Python 3.4.我从命令提示符运行python get-pip.py-这正确安装了pip.我从here开始拥有它.之后,我运行pip install mongo-connector.这将下载mon...

我在Windows 8.1机器上安装了全新的python版本.
我尝试了Python 2.7.8和Python 3.4.

我从命令提示符运行python get-pip.py-这正确安装了pip.我从here开始拥有它.

之后,我运行pip install mongo-connector.这将下载mongo连接器,并引发如下异常:

Downloading/unpacking mongo-connector
  Downloading mongo-connector-1.3.tar.gz
  Running setup.py (path:c:\users\imon~1\appdata\local\temp\pip_build_èimon\mong
o-connector\setup.py) egg_info for package mongo-connector

Cleaning up...
Exception:
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "C:\Python27\lib\site-packages\pip\commands\install.py", line 278, in run

    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundl
e=self.bundle)
  File "C:\Python27\lib\site-packages\pip\req.py", line 1234, in prepare_files
    req_to_install.assert_source_matches_version()
  File "C:\Python27\lib\site-packages\pip\req.py", line 464, in assert_source_ma
tches_version
    % (display_path(self.source_dir), version, self))
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8a in position 55: ordinal
 not in range(128)

Traceback (most recent call last):
  File "C:\Python27\lib\runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "C:\Python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Python27\Scripts\pip.exe\__main__.py", line 9, in <module>
  File "C:\Python27\lib\site-packages\pip\__init__.py", line 185, in main
    return command.main(cmd_args)
  File "C:\Python27\lib\site-packages\pip\basecommand.py", line 161, in main
    text = '\n'.join(complete_log)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8a in position 70: ordinal
 not in range(128)

如果是Python 3.4,它会抛出:

Downloading/unpacking mongo-connector
  Downloading mongo-connector-1.3.tar.gz
Cleaning up...
Exception:
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "C:\Python34\lib\site-packages\pip\commands\install.py", line 278, in run

    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundl
e=self.bundle)
  File "C:\Python34\lib\site-packages\pip\req.py", line 1229, in prepare_files
    req_to_install.run_egg_info()
  File "C:\Python34\lib\site-packages\pip\req.py", line 292, in run_egg_info
    logger.notify('Running setup.py (path:%s) egg_info for package %s' % (self.s
etup_py, self.name))
  File "C:\Python34\lib\site-packages\pip\log.py", line 102, in notify
    self.log(self.NOTIFY, msg, *args, **kw)
  File "C:\Python34\lib\site-packages\pip\log.py", line 162, in log
    consumer.write(write_content)
  File "C:\Python34\lib\site-packages\pip\_vendor\colorama\ansitowin32.py", line
 116, in write
    self.write_and_convert(text)
  File "C:\Python34\lib\site-packages\pip\_vendor\colorama\ansitowin32.py", line
 143, in write_and_convert
    self.write_plain_text(text, cursor, len(text))
  File "C:\Python34\lib\site-packages\pip\_vendor\colorama\ansitowin32.py", line
 148, in write_plain_text
    self.wrapped.write(text[start:end])
  File "C:\Python34\lib\encodings\cp437.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u0160' in position
70: character maps to <undefined>

Traceback (most recent call last):
  File "C:\Python34\lib\runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Python34\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Python34\Scripts\pip.exe\__main__.py", line 9, in <module>
  File "C:\Python34\lib\site-packages\pip\__init__.py", line 185, in main
    return command.main(cmd_args)
  File "C:\Python34\lib\site-packages\pip\basecommand.py", line 168, in main
    logger.fatal('Storing debug log for failure in %s' % log_file_fn)
  File "C:\Python34\lib\site-packages\pip\log.py", line 111, in fatal
    self.log(self.FATAL, msg, *args, **kw)
  File "C:\Python34\lib\site-packages\pip\log.py", line 162, in log
    consumer.write(write_content)
  File "C:\Python34\lib\site-packages\pip\_vendor\colorama\ansitowin32.py", line
 116, in write
    self.write_and_convert(text)
  File "C:\Python34\lib\site-packages\pip\_vendor\colorama\ansitowin32.py", line
 140, in write_and_convert
    self.write_plain_text(text, cursor, start)
  File "C:\Python34\lib\site-packages\pip\_vendor\colorama\ansitowin32.py", line
 148, in write_plain_text
    self.wrapped.write(text[start:end])
  File "C:\Python34\lib\encodings\cp437.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u0160' in position
42: character maps to <undefined>

====

只运行不带任何参数的pip会引发以下情况:

Traceback (most recent call last):
  File "C:\Python34\lib\runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Python34\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Python34\Scripts\pip.exe\__main__.py", line 9, in <module>
  File "C:\Python34\lib\site-packages\pip\__init__.py", line 177, in main
    cmd_name, cmd_args = parseopts(initial_args)
  File "C:\Python34\lib\site-packages\pip\__init__.py", line 148, in parseopts
    parser.print_help()
  File "C:\Python34\lib\optparse.py", line 1646, in print_help
    file.write(self.format_help())
  File "C:\Python34\lib\encodings\cp437.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u0160' in position
1235: character maps to <undefined>

在Python 2.7.8中运行pip会引发以下情况:

Traceback (most recent call last):
  File "C:\Python27\lib\runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "C:\Python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Python27\Scripts\pip.exe\__main__.py", line 9, in <module>
  File "C:\Python27\lib\site-packages\pip\__init__.py", line 177, in main
    cmd_name, cmd_args = parseopts(initial_args)
  File "C:\Python27\lib\site-packages\pip\__init__.py", line 148, in parseopts
    parser.print_help()
  File "C:\Python27\lib\optparse.py", line 1670, in print_help
    file.write(self.format_help().encode(encoding, "replace"))
  File "C:\Python27\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8a in position 1210: ordin
al not in range(128)

这在我使用过的任何其他机器上都从未发生过.我发现了许多类似的问题,但是都没有解决我需要处理的问题.

This thread告诉我运行chcp65001.执行此操作并随后运行pip时,它将引发此错误:

C:\Python27\Scripts>pip
Traceback (most recent call last):
  File "C:\Python27\lib\runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "C:\Python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Python27\Scripts\pip.exe\__main__.py", line 9, in <module>
  File "C:\Python27\lib\site-packages\pip\__init__.py", line 177, in main
    cmd_name, cmd_args = parseopts(initial_args)
  File "C:\Python27\lib\site-packages\pip\__init__.py", line 148, in parseopts
    parser.print_help()
  File "C:\Python27\lib\optparse.py", line 1670, in print_help
    file.write(self.format_help().encode(encoding, "replace"))
LookupError: unknown encoding: cp65001

根据this thread,可能的问题在于,用户名是包含Unicode字符的“?imon”.但是,我不知道该怎么办.我不会将任何python文件编辑为不同的编码,这似乎只是一个非常困难且临时的解决方法. (Windows为我使用了用户名,这是另一个不好的主意,不允许我为我选择用户名.)

解决方法:

因为python不知道“ cp65001”是“ utf-8”的别名
您可以在Windows中进行设置:

set PYTHONIOENCODING=utf-8

本文标题为:Python-另一个编码问题. Windows 8.1,均为最新的python.点引发异常

基础教程推荐