Python代码在桌面上运行,但不在集群上运行:UnicodeEncodeError

时间:2018-06-18 09:18:47

标签: python-3.x cluster-computing python-unicode

我做了一些研究,但在网上找不到相关主题,这就是我在这里发布问题的原因。

问题如下:我写了一个Python3代码,它在我的MacBook上完美运行,但在我正在使用的集群上没有做同样的事情。它总是抛出UnicodeEncodeError与此处所示完全相同的点:

Traceback (most recent call last):
  File "B_main.py", line 8, in <module>
    import D_fuzzy_matching
  File "/home/firmdata/name/python/D_fuzzy_matching.py", line 105, in <module>
    df2[cols_to_keep].to_csv(folder4 + 'fuzzy_matches/' + item[:-1].lower() + '.txt', index=False, header=False)
  File "/home/firmdata/name/python/myvenv/lib/python3.6/site-packages/pandas/core/frame.py", line 1745, in to_csv
    formatter.save()
  File "/home/firmdata/name/python/myvenv/lib/python3.6/site-packages/pandas/io/formats/csvs.py", line 165, in save
    compression=self.compression)
  File "/home/firmdata/name/python/myvenv/lib/python3.6/site-packages/pandas/io/common.py", line 400, in _get_handle
    f = open(path_or_buf, mode, encoding=encoding)

我的Python3代码中的相应行是:

df2[cols_to_keep].to_csv(folder4 + 'fuzzy_matches/' + item[:-1].lower() + '.txt', index=False, header=False)

我已经检查过,pip on cluster包含与本地桌面上的pip完全相同的库。而且,我在桌面上使用的Python版本是

Python 3.6.4

而在群集上

Python 3.6.2

可用。

我可以提供的另一个信息是,为了根据我的需要设置一个可用的Python环境,我指的是虚拟环境,因为否则我无法通过pip安装库。

如果有人能给我一些关于我做错了什么的提示,我将非常感激。)

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果群集是* unix机器,您可以尝试最简单的方法来生成您可能正在使用的所有UTF语言环境。

您可以查看当前启用的内容:     locale -a

要添加更多区域设置,您可以使用:     sudo locale-gen en_US     sudo locale-gen en_US.UTF8     sudo update-locale

或者以更Ubuntu的方式:     sudo apt-get install language-pack-(XX)