【问题标题】:LookupError: unknown encoding: cp0LookupError:未知编码:cp0
【发布时间】:2013-06-13 20:39:34
【问题描述】:

我在窗口 7、python 2.7.2、pandas 0.11.0、django 1.4、wsgi 和 apache 2.2。我有一个 pandas 脚本,如果我直接使用 python 运行它,它可以正常工作,并且也可以在 ipython 中使用 %run 运行。但是,当我在视图中运行 pandas 时,我得到“LookupError:未知编码:cp0”。这只发生在视图中的 pandas 中使用 ols 时。我也有点困惑为什么 py3compat.py 在我使用 python 2.7 时进入图片。另外,我看过一些关于在 str() 中包装打印变量的帖子,但我不确定这将如何应用在这里。整个回溯是:

Traceback (most recent call last):
model = pd.ols(y=df_loan['LogSpread'], x=df_loan['Dummy Rating'])
File "C:\\Python27\\lib\\site-packages\\pandas\\stats\\interface.py", line 135, in ols
return klass(**kwargs)
File "C:\\Python27\\lib\\site-packages\\pandas\\stats\\ols.py", line 43, in __init__
  import statsmodels.api as sm
File "C:\\Python27\\lib\\site-packages\\statsmodels-0.5.0-py2.7-win32.egg\\statsmodels\\api.py", line 3, in <module>
  import regression
File "C:\\Python27\\lib\\site-packages\\statsmodels-0.5.0-py2.7-win32.egg\\statsmodels\\regression\\__init__.py", line 1, in <module>
  from linear_model import yule_walker
File "C:\\Python27\\lib\\site-packages\\statsmodels-0.5.0-py2.7-win32.egg\\statsmodels\\regression\\linear_model.py", line 41, in <module>
  import statsmodels.base.model as base
File "C:\\Python27\\lib\\site-packages\\statsmodels-0.5.0-py2.7-win32.egg\\statsmodels\\base\\model.py", line 10, in <module>
from statsmodels.formula import handle_formula_data
File "C:\\Python27\\lib\\site-packages\\statsmodels-0.5.0-py2.7-win32.egg\\statsmodels\\formula\\__init__.py", line 4, in <module>
  from formulatools import handle_formula_data
File "C:\\Python27\\lib\\site-packages\\statsmodels-0.5.0-py2.7-win32.egg\\statsmodels\\formula\\formulatools.py", line 2, in <module>
  from patsy import dmatrices
File "build\\bdist.win32\\egg\\patsy\\__init__.py", line 70, in <module>
  _reexport("patsy." + child)
File "build\\bdist.win32\\egg\\patsy\\__init__.py", line 61, in _reexport
__import__(modname)
File "build\\bdist.win32\\egg\\patsy\\highlevel.py", line 18, in <module>
File "build\\bdist.win32\\egg\\patsy\\design_info.py", line 17, in <module>
File "build\\bdist.win32\\egg\\patsy\\util.py", line 385, in <module>
File "C:\\Python27\\lib\\site-packages\\ipython-0.13.1-py2.7.egg\\IPython\\__init__.py", line 46, in <module>
  from .frontend.terminal.embed import embed
File "C:\\Python27\\lib\\site-packages\\ipython-0.13.1-py2.7.egg\\IPython\\frontend\\terminal\\embed.py", line 39, in <module>
  from IPython.frontend.terminal.interactiveshell import TerminalInteractiveShell
File "C:\\Python27\\lib\\site-packages\\ipython-0.13.1-py2.7.egg\\IPython\\frontend\\terminal\\interactiveshell.py", line 33, in <module>
  from IPython.core.interactiveshell import InteractiveShell, InteractiveShellABC
File "C:\\Python27\\lib\\site-packages\\ipython-0.13.1-py2.7.egg\\IPython\\core\\interactiveshell.py", line 61, in <module>
  from IPython.core.prompts import PromptManager
File "C:\\Python27\\lib\\site-packages\\ipython-0.13.1-py2.7.egg\\IPython\\core\\prompts.py", line 138, in <module>
  HOME = py3compat.str_to_unicode(os.environ.get("HOME","//////:::::ZZZZZ,,,~~~"))
File "C:\\Python27\\lib\\site-packages\\ipython-0.13.1-py2.7.egg\\IPython\\utils\\py3compat.py", line 18, in decode
  return s.decode(encoding, "replace")
LookupError: unknown encoding: cp0

非常感谢!

【问题讨论】:

  • 这很奇怪。在控制台chcp 中执行此操作,以查看您正在使用的当前代码页。
  • 活动代码页:437
  • 我做了很多进一步的调试。看来我一开始就无法导入 IPython。回溯从 .frontend.terminal.embed import embed 开始。
  • 所以这是一个糟糕的解决方案,但它适用于我的机器。我进入文件 IPython\core\prompts.py 并更改了 HOME = py3compat.str_to_unicode(os.environ.get("HOME","//////:::::ZZZZZ,,,~~~ ")) 到 HOME = py3compat.str_to_unicode(os.environ.get("HOME","//////:::::ZZZZZ,,,~~~"), 'cp437')。我也为 USER 和 HOSTNAME 做了同样的事情,在它下面几行。

标签: python django encoding pandas


【解决方案1】:

关闭 Spyder。

打开 Anaconda Prompt 并输入:set PYTHONIOENCODING=UTF-8。 或者,创建一个名为 PYTHONIOENCODING 和值 UTF-8 的环境变量。

输入 spyder 重新开始。

【讨论】:

    【解决方案2】:

    我也遇到过这个问题,用了很多方法。但是我也失败了,但是,当我重新启动Spyder并再次运行我的程序时,这个问题已经解决了,太棒了,我建议你可以试试这个方法

    【讨论】:

      【解决方案3】:

      我在使用 spyder 时也遇到了这个问题,但是当我打开一个新控制台时,它又可以工作了,很容易解决。

      【讨论】:

        【解决方案4】:

        conda create -n py2 python=2.7 anaconda jupyter spyder PYTHONIOENCODING=UTF-8 这不起作用: PackagesNotFoundError:当前频道中没有以下软件包:

        • pythonioencoding=UTF-8

        【讨论】:

        • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
        • 这并不能真正回答问题。如果您有其他问题,可以点击 进行提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-06
        • 2016-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-09
        相关资源
        最近更新 更多