繁体   English   中英

我该如何解决此python错误? self.stdin.write(input)TypeError:write()参数必须是str,而不是字节

[英]What do I fix this python error? self.stdin.write(input) TypeError: write() argument must be str, not bytes

我正在尝试执行以下代码,但未运行。 错误日志粘贴在下面。 可能是由于导入PG引起的,但我不知道如何解决此问题。

import pandas as pd
from sqlalchemy import create_engine, MetaData, Table, select, engine
from sqlalchemy.orm import sessionmaker
import datetime
import cx_Oracle
import dateutil.relativedelta
import configparser
import sys, os
from boto3.s3.transfer import S3Transfer
import boto3
import pg

try:
    options = 'keepalives=1 keepalives_idle=200 keepalives_interval=200 keepalives_count=5'
    connection_string = "host=%s port=%s dbname=%s user=%s password=%s %s" % (
        'somehost', '8192', 'somedb', 'someuser', 'somepassword', options)
    print(connection_string)
    con = pg.connect(dbname=connection_string)
    print('Connected to Redshift.Connection Detail : %s' % con)

except Exception as e:
    print('Unable to Connect to Redshift')
    print(e.message)
    print('No')
    sys.exit(1)



C:\Users\olaa\Desktop\CWB> python .\my.py Traceback (most recent call last):   File ".\my.py", line 11, in <module>
    import pg   File "C:\Users\olaa\AppData\Local\Programs\Python\Python36\lib\site-packages\pg\__init__.py", line 1, in <module>
    from .core import (   File "C:\Users\olaa\AppData\Local\Programs\Python\Python36\lib\site-packages\pg\core.py", line 6, in <module>
    from . import glfw   File "C:\Users\olaa\AppData\Local\Programs\Python\Python36\lib\site-packages\pg\glfw.py", line 138, in <module>
    ['', '/usr/lib', '/usr/local/lib', 'C:/Users/olaa/AppData/Local/Programs/Python/Python36/Lib/site-packages/pg/'],
_g lfw_get_version)   File "C:\Users\olaa\AppData\Local\Programs\Python\Python36\lib\site-packages\pg\glfw.py", line 74, in _load_library
    version = version_check_callback(filename)   File "C:\Users\olaa\AppData\Local\Programs\Python\Python36\lib\site-packages\pg\glfw.py", line 130, in _glfw_get_versi on
    out = process.communicate(_to_char_p(filename))[0]   File "C:\Users\olaa\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 836, in communicate
    stdout, stderr = self._communicate(input, endtime, timeout)   File "C:\Users\olaa\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 1076, in _communicate
    self._stdin_write(input)   File "C:\Users\olaa\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 776, in _stdin_write
    self.stdin.write(input) TypeError: write() argument must be str, not bytes

Traceback (most recent call last):
  File "<string>", line 28, in <module>
EOFError: EOF when reading a line
import pg

这不是Postgres库。 这是一个OpenGL图形库

即使导入成功,也可能在con = pg.connect( ...

您正在尝试连接到Redshift / Postgres,因此请尝试使用实际的Postgres客户端之一

通常,除非Python用户有充分的理由尝试其他驱动程序,否则他们希望使用psycopg2

https://wiki.postgresql.org/wiki/Python

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM