问题描述
我需要模拟postgresql数据库,经过研究后,我决定使用 Tescontainers-Python 。
pip安装了Testcontainer i n python3.6 之后,我发现开始的初始代码很简单,因为它可以是:
from testcontainers.postgres import PostgresContainer
postgres_container = PostgresContainer("postgres:9.5")
postgres_container.start()
sql_url = postgres_container.get_connection_url()
Python 3.8也是如此,在Windows 10或Ubuntu下,我总是收到相同的错误消息,我丢失了什么吗?
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py",line 672,in urlopen
chunked=chunked,File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py",line 387,in _make_request
conn.request(method,url,**httplib_request_kw)
File "/usr/lib/python3.6/http/client.py",line 1287,in request
self._send_request(method,body,headers,encode_chunked)
File "/usr/lib/python3.6/http/client.py",line 1333,in _send_request
self.endheaders(body,encode_chunked=encode_chunked)
File "/usr/lib/python3.6/http/client.py",line 1282,in endheaders
self._send_output(message_body,line 1042,in _send_output
self.send(msg)
File "/usr/lib/python3.6/http/client.py",line 980,in send
self.connect()
File "/usr/local/lib/python3.6/dist-packages/docker/transport/unixconn.py",line 43,in connect
sock.connect(self.unix_socket)
FileNotFoundError: [Errno 2] No such file or directory
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py",line 449,in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py",line 720,in urlopen
method,error=e,_pool=self,_stacktrace=sys.exc_info()[2]
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py",line 400,in increment
raise six.reraise(type(error),error,_stacktrace)
File "/usr/lib/python3/dist-packages/six.py",line 702,in reraise
raise value.with_traceback(tb)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py",in connect
sock.connect(self.unix_socket)
urllib3.exceptions.ProtocolError: ('Connection aborted.',FileNotFoundError(2,'No such file or directory'))
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/docker/api/client.py",line 205,in _retrieve_server_version
return self.version(api_version=False)["ApiVersion"]
File "/usr/local/lib/python3.6/dist-packages/docker/api/daemon.py",line 181,in version
return self._result(self._get(url),json=True)
File "/usr/local/lib/python3.6/dist-packages/docker/utils/decorators.py",line 46,in inner
return f(self,*args,**kwargs)
File "/usr/local/lib/python3.6/dist-packages/docker/api/client.py",line 228,in _get
return self.get(url,**self._set_request_timeout(kwargs))
File "/usr/lib/python3/dist-packages/requests/sessions.py",line 546,in get
return self.request('GET',**kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py",line 533,in request
resp = self.send(prep,**send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py",line 646,in send
r = adapter.send(request,**kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py",line 498,in send
raise ConnectionError(err,request=request)
requests.exceptions.ConnectionError: ('Connection aborted.',another exception occurred:
Traceback (most recent call last):
File "***.py",line 4,in <module>
postgres_container = PostgresContainer("postgres:9.5")
File "/usr/local/lib/python3.6/dist-packages/testcontainers/postgres.py",line 36,in __init__
super(PostgresContainer,self).__init__(image=image)
File "/usr/local/lib/python3.6/dist-packages/testcontainers/core/generic.py",line 21,in __init__
super(DbContainer,self).__init__(image)
File "/usr/local/lib/python3.6/dist-packages/testcontainers/core/container.py",line 16,in __init__
self._docker = DockerClient()
File "/usr/local/lib/python3.6/dist-packages/testcontainers/core/docker_client.py",line 23,in __init__
self.client = docker.from_env()
File "/usr/local/lib/python3.6/dist-packages/docker/client.py",line 85,in from_env
timeout=timeout,version=version,**kwargs_from_env(**kwargs)
File "/usr/local/lib/python3.6/dist-packages/docker/client.py",line 40,in __init__
self.api = apiclient(*args,line 188,in __init__
self._version = self._retrieve_server_version()
File "/usr/local/lib/python3.6/dist-packages/docker/api/client.py",line 213,in _retrieve_server_version
'Error while fetching server API version: {0}'.format(e)
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.','No such file or directory'))
Exception ignored in: <bound method DockerContainer.__del__ of <testcontainers.postgres.PostgresContainer object at 0x7ff612c65390>>
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/testcontainers/core/container.py",line 73,in __del__
AttributeError: 'PostgresContainer' object has no attribute '_container'
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)