我安装了 pgadmin4 1.3(在一个 docker 容器中),除了 CSV 导出之外,一切都运行良好。
我在首选项中正确填写了二进制路径,但它仍然无法正常工作。我没有错误信息。当我单击 CSV 导出图标时,没有任何反应。
这是我的配置:
- Python版本:2.7.12
- PostgreSQL 版本:9.5
- pgadmin 版本:4.1.3
- Ubuntu 16.04
如果有人有同样的问题,希望知道如何解决它,你能帮忙吗?
谢谢 !
我安装了 pgadmin4 1.3(在一个 docker 容器中),除了 CSV 导出之外,一切都运行良好。
我在首选项中正确填写了二进制路径,但它仍然无法正常工作。我没有错误信息。当我单击 CSV 导出图标时,没有任何反应。
这是我的配置:
如果有人有同样的问题,希望知道如何解决它,你能帮忙吗?
谢谢 !
我终于找到了罪魁祸首!
我查看了 /var/log/apache2/errors.log 并UnicodeEncodeError
在 CSV 创建期间看到了一个。错误来自此文件:
/usr/local/lib/python2.7/dist-packages/pgadmin4/pgadmin/utils/driver/psycopg2/__init__.py
第 651 行,CSV 编写器在编写特殊字符(如重读字符)时被破坏(我使用的是 Python 2,我想我不会遇到 Python 3 的问题):
csv_writer.writerows(results)
最终我通过使用unicodecsv
库解决了它:
pip install unicodecsv
import csv
为import unicodecsv as csv
csv.DictWriter(res_io, fieldnames=header, delimiter=str(','), quoting=csv.QUOTE_NONNUMERIC)
为csv.DictWriter(res_io, encoding='utf-8', fieldnames=header, delimiter=str(','), quoting=csv.QUOTE_NONNUMERIC)
希望在此编码错误未修复时对其他人有所帮助!