Я написал программу FASTapi, которую использовал для запуска с библиотекой ngrok, чтобы создать для нее внешние порты, когда я запускал ее в Colab. Затем я закрепил его без ngrok вот так:
FROM python:3.10-slim
RUN apt-get update && apt-get install -y ffmpeg
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir -r requirements.txt
# Make port 8000 available to the world outside this container
EXPOSE 8000
# Define environment variable
ENV NAME FastAPIApp
# Run app.py when the container launches
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
docker run -p 8000:8000 my-fastapi-app. Он запускается, но как только я запрашиваю его с помощью IDLE Python с помощью:
import requests
url = 'http://0.0.0.0:8000'
files = {'file': open('C:\\Users\\Z\\Desktop\\v\\f.m4a', 'rb')}
response = requests.post(url, files=files)
print(response.status_code)
print(response.text)
Он не показывает журнал, но IDLE показывает эти ошибки и вообще не работает:
Traceback (most recent call last):
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 203, in _new_conn
sock = connection.create_connection(
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\connection.py", line 85, in create_connection
raise err
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\connection.py", line 73, in create_connection
sock.connect(sa)
OSError: [WinError 10049] The requested address is not valid in its context
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 791, in urlopen
response = self._make_request(
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 497, in _make_request
conn.request(
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 395, in request
self.endheaders()
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 1281, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 1041, in _send_output
self.send(msg)
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 979, in send
self.connect()
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 243, in connect
self.sock = self._new_conn()
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 218, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [WinError 10049] The requested address is not valid in its context
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 486, in send
resp = conn.urlopen(
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 845, in urlopen
retries = retries.increment(
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\retry.py", line 515, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='0.0.0.0', port=8000): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10049] The requested address is not valid in its context'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\requestapi.py", line 6, in
response = requests.post(url, files=files)
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 519, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='0.0.0.0', port=8000): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10049] The requested address is not valid in its context')
Я также смотрю на это:
requests.Exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8000) : Превышено максимальное количество повторов для URL: /api/1/
не могли бы вы мне помочь? Я использую Windows.
Я написал программу FASTapi, которую использовал для запуска с библиотекой ngrok, чтобы создать для нее внешние порты, когда я запускал ее в Colab. Затем я закрепил его без ngrok вот так: [code]FROM python:3.10-slim
RUN apt-get update && apt-get install -y ffmpeg
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir -r requirements.txt
# Make port 8000 available to the world outside this container EXPOSE 8000
# Define environment variable ENV NAME FastAPIApp
# Run app.py when the container launches CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] [/code] и файл require.txt: [code]fastapi uvicorn python-multipart pydub nest-asyncio audonnx audinterface [/code] Итак, я закрепил его с помощью команды: docker build -t my-fastapi-app ., а затем запустил его с помощью:[code]docker run -p 8000:8000 my-fastapi-app. Он запускается, но как только я запрашиваю его с помощью IDLE Python с помощью: import requests
print(response.status_code) print(response.text) [/code] Он не показывает журнал, но IDLE показывает эти ошибки и вообще не работает: [code]Traceback (most recent call last): File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 203, in _new_conn sock = connection.create_connection( File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\connection.py", line 85, in create_connection raise err File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\connection.py", line 73, in create_connection sock.connect(sa) OSError: [WinError 10049] The requested address is not valid in its context
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 791, in urlopen response = self._make_request( File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 497, in _make_request conn.request( File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 395, in request self.endheaders() File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 1281, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 1041, in _send_output self.send(msg) File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 979, in send self.connect() File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 243, in connect self.sock = self._new_conn() File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 218, in _new_conn raise NewConnectionError( urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [WinError 10049] The requested address is not valid in its context
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 486, in send resp = conn.urlopen( File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 845, in urlopen retries = retries.increment( File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\retry.py", line 515, in increment raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='0.0.0.0', port=8000): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10049] The requested address is not valid in its context'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\Z\AppData\Local\Programs\Python\Python311\requestapi.py", line 6, in response = requests.post(url, files=files) File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\api.py", line 115, in post return request("post", url, data=data, json=json, **kwargs) File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\api.py", line 59, in request return session.request(method=method, url=url, **kwargs) File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 589, in request resp = self.send(prep, **send_kwargs) File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 703, in send r = adapter.send(request, **kwargs) File "C:\Users\Z\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 519, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='0.0.0.0', port=8000): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10049] The requested address is not valid in its context')
[/code] Я также смотрю на это: requests.Exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8000) : Превышено максимальное количество повторов для URL: /api/1/ не могли бы вы мне помочь? Я использую Windows.
Я написал краулерную реализацию селена, которая отлично работает в системах Windows, но запускает программу в контейнере Linux. HTTPConnectionPool(host='localhost', port=35655): время ожидания чтения истекло. (время чтения=120) . Некоторые...
Я написал краулерную реализацию селена, которая отлично работает в системах Windows, но запускает программу в контейнере Linux. HTTPConnectionPool(host='localhost', port=35655): время ожидания чтения истекло. (время чтения=120) . Некоторые...