Requests library does not work on deployed app

I have created app that calls several APIs in sequence. When I ran the app on my computer through the Streamlit CMD, it was working fine. However, after deploying the app through Streamlit service, it did not run and gave a runtime error. Keep in mind I did not upload anyu environment file to my GitHub repo because when I tried to do that, the app did not load at all.

Here is the error from the log:

2023-03-28 13:06:16.074 Uncaught app exception
Traceback (most recent call last):
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/util/connection.py", line 95, in create_connection
    raise err
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/util/connection.py", line 85, in create_connection
    sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connectionpool.py", line 398, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connection.py", line 244, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/usr/local/lib/python3.9/http/client.py", line 1285, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/local/lib/python3.9/http/client.py", line 1331, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.9/http/client.py", line 1280, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.9/http/client.py", line 1040, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.9/http/client.py", line 980, in send
    self.connect()
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connection.py", line 205, in connect
    conn = self._new_conn()
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connection.py", line 186, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fd155d24430>: Failed to establish a new connection: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/adapters.py", line 489, in send
    resp = conn.urlopen(
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    retries = retries.increment(
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/util/retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='10.159.84.8', port=2525): Max retries exceeded with url: /PreProcessingUploadRescale (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd155d24430>: Failed to establish a new connection: [Errno 110] Connection timed out'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/appuser/venv/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 565, in _run_script
    exec(code, module.__dict__)
  File "/app/abaqusstreamlit/Main_Page.py", line 100, in <module>
    resp = requests.post(url = api, data = req_data, files = InpZip).json()
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/adapters.py", line 565, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='XXXX', port=2525): Max retries exceeded with url: /XXXX(Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd155d24430>: Failed to establish a new connection: [Errno 110] Connection timed out'))
2023-03-28 13:22:06.346 Uncaught app exception
Traceback (most recent call last):
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/util/connection.py", line 95, in create_connection
    raise err
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/util/connection.py", line 85, in create_connection
    sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connectionpool.py", line 398, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connection.py", line 244, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/usr/local/lib/python3.9/http/client.py", line 1285, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/local/lib/python3.9/http/client.py", line 1331, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.9/http/client.py", line 1280, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.9/http/client.py", line 1040, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.9/http/client.py", line 980, in send
    self.connect()
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connection.py", line 205, in connect
    conn = self._new_conn()
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connection.py", line 186, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fd155d24520>: Failed to establish a new connection: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/adapters.py", line 489, in send
    resp = conn.urlopen(
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    retries = retries.increment(
  File "/home/appuser/venv/lib/python3.9/site-packages/urllib3/util/retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='XXXX', port=2525): Max retries exceeded with url: /XXXX(Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd155d24520>: Failed to establish a new connection: [Errno 110] Connection timed out'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/appuser/venv/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 565, in _run_script
    exec(code, module.__dict__)
  File "/app/abaqusstreamlit/Main_Page.py", line 100, in <module>
    resp = requests.post(url = api, data = req_data, files = InpZip).json()
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "/home/appuser/venv/lib/python3.9/site-packages/requests/adapters.py", line 565, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='XXXX', port=2525): Max retries exceeded with url: /XXX (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd155d24520>: Failed to establish a new connection: [Errno 110] Connection timed out'))

Your host is probably not reachable from the outside world or it is (geo-)blocked.
If i ping the host ip address, i get no answer.

You are right Franky!

same here ```
import requests


ModuleNotFoundError: No module named ‘requests’

![image|637x66](upload://MfK1SJDbE2TI1Crc45knuiianD.png)

Not the same. Seems like you forgot to install requests.

i install requests and is install the requests i see in the terminal and it tells me no module named ‘requests’

Collecting requests==2.26.0
  Downloading requests-2.26.0-py2.py3-none-any.whl (62 kB)
 File "/mount/src/saekweather/databasestreamlit.py", line 2, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

we wish you to fix it because it is for a college in Greece that finances the whole project

That seems incomplete. Crucially, it is missing the part where it says that requests was installed or what errors occurred in case something went wrong.

Successfully installed MarkupSafe-2.1.5 absl-py-2.1.0 altair-5.2.0 astunparse-1.6.3 attrs-23.2.0 beautifulsoup4-4.12.3 blinker-1.7.0 branca-0.7.1 cachetools-5.3.3 certifi-2024.2.2 chardet-3.0.4 charset-normalizer-2.0.12 click-8.1.7 contourpy-1.2.0 cycler-0.12.1 et-xmlfile-1.1.0 flatbuffers-23.5.26 folium-0.15.1 fonttools-4.49.0 gast-0.5.4 gitdb-4.0.11 gitpython-3.1.42 google-auth-2.28.1 google-auth-oauthlib-1.2.0 google-pasta-0.2.0 googletrans-3.0.0 greenlet-3.0.3 grpcio-1.62.0 h11-0.9.0 h2-3.2.0 h5py-3.10.0 hpack-3.0.0 hstspreload-2024.2.1 httpcore-0.9.1 httpx-0.13.3 hyperframe-5.2.0 idna-2.10 importlib-metadata-6.11.0 importlib-resources-6.1.2 jinja2-3.1.3 joblib-1.3.2 jsonschema-4.21.1 jsonschema-specifications-2023.12.1 keras-2.15.0 kiwisolver-1.4.5 libclang-16.0.6 markdown-3.5.2 markdown-it-py-3.0.0 matplotlib-3.8.3 mdurl-0.1.2 ml-dtypes-0.2.0 numpy-1.26.4 oauthlib-3.2.2 openpyxl-3.1.2 opt-einsum-3.3.0 packaging-23.2 pandas-2.2.1 pillow-9.5.0 plotly-5.19.0 protobuf-4.25.3 pyarrow-15.0.0 pyasn1-0.5.1 pyasn1-modules-0.3.0 pydeck-0.8.1b0 pygments-2.17.2 pyparsing-3.1.1 python-dateutil-2.8.2 pytz-2024.1 referencing-0.33.0 requests-2.26.0 requests-oauthlib-1.3.1 rfc3986 no errors in the end

That is weird. Are you by chance launching other python process from your app?

I would pretty much guess that the script is being started in a different environment than the one in which the dependencies were installed.

ye true !!! i fix it i put the code inside in the streamlit app from the ather file.py !!!