UnicodeDecodeError: 'ascii'编解码器无法解码位置0处的字节0x96

3

我查看了很多类似问题的答案,但好像无法找到错误在我的代码中发生的位置。当我尝试运行celery时出现错误:celery –A runLogProject worker –loglevel=INFO。我已注释掉与Celery相关的所有代码,并且仍然出现相同的错误。我还尝试重新安装Celery。我不确定还应该尝试什么。以下是追踪信息:

 C:\Python27\lib\site-packages\celery\bin\celery.py:803: UnicodeWarning: Unicode equal comparison failed to convert both
arguments to Unicode - interpreting them as being unequal
  if len(argv) > 1 and 'worker' in argv[0:3]:
C:\Python27\lib\site-packages\celery\bin\celery.py:765: UnicodeWarning: Unicode equal comparison failed to convert both
arguments to Unicode - interpreting them as being unequal
  if 'multi' in argv[1:3]:  # Issue 1008
C:\Python27\lib\site-packages\celery\bin\base.py:398: UnicodeWarning: Unicode equal comparison failed to convert both ar
guments to Unicode - interpreting them as being unequal
  if '--version' in argv:
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\celery.exe\__main__.py", line 9, in <module>
  File "C:\Python27\lib\site-packages\celery\__main__.py", line 30, in main
    main()
  File "C:\Python27\lib\site-packages\celery\bin\celery.py", line 81, in main
    cmd.execute_from_commandline(argv)
  File "C:\Python27\lib\site-packages\celery\bin\celery.py", line 769, in execute_from_commandline
    super(CeleryCommand, self).execute_from_commandline(argv)))
  File "C:\Python27\lib\site-packages\celery\bin\base.py", line 304, in execute_from_commandline
    argv = self.setup_app_from_commandline(argv)
  File "C:\Python27\lib\site-packages\celery\bin\base.py", line 435, in setup_app_from_commandline
    preload_options = self.parse_preload_options(argv)
  File "C:\Python27\lib\site-packages\celery\bin\base.py", line 500, in parse_preload_options
    return self.preparse_options(args, self.preload_options)
  File "C:\Python27\lib\site-packages\celery\bin\base.py", line 512, in preparse_options
    if arg.startswith('--'):
UnicodeDecodeError: 'ascii' codec can't decode byte 0x96 in position 0: ordinal not in range(128)

你需要提供一些代码才能得到准确的解决方案。 - daniula
挑战在于回溯中的所有代码都在Celery源代码中。我已经查看了引用的行,但无法确定它是在哪里被调用的。我还注释掉了我的代码部分(以及所有依赖Celery的代码),但仍然收到相同的错误。 - Jason Hawkins
我不确定您在这里提到的问题是什么(请提供问题编号的链接),但请看下面我的答案。看起来这只是一个奇怪的打字错误。 - daniula
1个回答

8
那是个棘手的问题。问题在于您输入命令的方式:
错误的方式:
celery –A runLogProject worker –loglevel=INFO

正确:

celery -A runLogProject worker -loglevel=INFO

很难发现区别。在第一个参数传递时,使用了破折号(ascii代码:8211)而不是连字符(ascii代码:45),需要使用-A和-loglevel。

如果你正在使用OSX系统,可能是因为你同时按下了ALT键和连字符/减号键,或者你只是从某个使用奇怪自动校正的博客中复制粘贴了它。


就是这样!我已经将命令复制到了一个Word文档中以供记录,并复制/粘贴了该版本。感谢你的发现。我可以在说明中加入这个。 - Jason Hawkins
永远不要使用Word或任何其他富文本文档。请使用IDE或简单的代码编辑器复制/粘贴您的代码。 - daniula
以上的代码正确吗?不应该是--loglevel=INFO吗?注意到有两个连字符吗?(我手动输入仍然出现ASCII错误,但至少我知道问题出在哪里。还要注意的是,在Python 2.7.10中我的相同命令可以工作,但现在在3.7.3中就不行了...) - iJames

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接