I want to make a simple weather program with https://openweathermap.org
Instead of "apikey" i used my real api key.
I want to write this in pyCharm
import tkinter
from PIL import ImageTk, Image
import requests
import json
from datetime import datetime
#Window core
root = tkinter.Tk()
root.title("Weather App")
root.geometry("400x400")
#Api key loader
api_key = "apikey"
url = "https://api.openweathermap.org/data/2.5/weather?q={city_name}&appid=
{api}".format(city_name = "London", api = api_key)
api = requests.get(url)
data = api.json()
root.mainloop()
I run the code and I have an error that I can't fix:
Traceback (most recent call last):
File "C:\Users\Paste\PycharmProjects\pythonProject1\Weather_app\weatherApp.py", line 15, in <module>
api = requests.get(url)
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\requests\api.py", line 73, in get
return request("get", url, params=params, **kwargs)
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\requests\sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\requests\sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\requests\adapters.py", line 456, in send
conn = self.get_connection(request.url, proxies)
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\requests\adapters.py", line 358, in get_connection
conn = self.poolmanager.connection_from_url(url)
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\urllib3\poolmanager.py", line 299, in connection_from_url
return self.connection_from_host(
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\urllib3\poolmanager.py", line 246, in connection_from_host
return self.connection_from_context(request_context)
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\urllib3\poolmanager.py", line 261, in connection_from_context
return self.connection_from_pool_key(pool_key, request_context=request_context)
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\urllib3\poolmanager.py", line 282, in connection_from_pool_key
pool = self._new_pool(scheme, host, port, request_context=request_context)
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\urllib3\poolmanager.py", line 214, in _new_pool
return pool_cls(host, port, **request_context)
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\urllib3\connectionpool.py", line 938, in __init__
HTTPConnectionPool.__init__(
File "C:\Users\Paste\PycharmProjects\pythonProject1\venv\lib\site-packages\urllib3\connectionpool.py", line 198, in __init__
self.pool = self.QueueCls(maxsize)
TypeError: Queue.__init__() takes 1 positional argument but 2 were given
Could you help me solve this problem?
Related
I'm trying to receive some SSE streams.
I found below code on internet, but when I'm trying to execute it, I receive the next error:
The code:
import sseclient
import urllib3
def open_stream(url, headers):
"""Get a streaming response for the given event feed using urllib3."""
http = urllib3.PoolManager()
return http.request('GET', url, preload_content=False, headers=headers)
if __name__ == '__main__':
url = 'http://localhost:4000/tweets/2'
headers = {'Accept': 'text/event-stream'}
response = open_stream(url, headers)
client = sseclient.SSEClient(response)
stream = client.events()
while True:
event = next(stream)
print(f"event: {event.event} \ndata: {event.data}")
Error:
Traceback (most recent call last):
File "D:\University\Sem5\pr\lab2\aa.py", line 19, in <module>
client = sseclient.SSEClient(response)
File "D:\University\Sem5\pr\lab2\sseclient.py", line 48, in __init__
self._connect()
File "D:\University\Sem5\pr\lab2\sseclient.py", line 56, in _connect
self.resp = requester.get(self.url, stream=True, **self.requests_kwargs)
File "D:\University\Sem5\pr\lab2\venv\lib\site-packages\requests\api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "D:\University\Sem5\pr\lab2\venv\lib\site-packages\requests\api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "D:\University\Sem5\pr\lab2\venv\lib\site-packages\requests\sessions.py", line 515, in request
prep = self.prepare_request(req)
File "D:\University\Sem5\pr\lab2\venv\lib\site-packages\requests\sessions.py", line 443, in prepare_request
p.prepare(
File "D:\University\Sem5\pr\lab2\venv\lib\site-packages\requests\models.py", line 318, in prepare
self.prepare_url(url, params)
File "D:\University\Sem5\pr\lab2\venv\lib\site-packages\requests\models.py", line 392, in prepare_url
raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL '<urllib3.response.HTTPResponse object at 0x0000028B05BC1760>': No scheme supplied. Perhaps you meant http://<urllib3.response.HTTPResponse object at 0x0000028B05BC1760>?
I am trying to write a test for a multi-file upload endpoint built with FastAPI. The test uses Python Requests. Make sure you have multipart installed: pip install python-multipart.
I am able to test upload for a single file but this endpoint that takes multiple uploads fails.
The fastAPI App:
from typing import List
from fastapi import FastAPI, File, UploadFile
app = FastAPI()
#app.post("/uploadfiles/")
async def create_upload_files(files: List[UploadFile] = File(...)):
return {"filenames": [file.filename for file in files]}
What I have tried:
import requests
testapi = ''
with open("profile.jpeg", "rb") as image_file:
response = requests.post(
f"{testapi}/uploadfiles",
files={
"uploads": [
("profile.jpeg", image_file),
("profile2.jpeg", image_file),
]
},
)
assert response.status_code == 200
It throws:
Traceback (most recent call last):
File "test_uploads.py", line XYZ, in test_multi_upload
response = client.post(
File "/usr/local/lib/python3.9/site-packages/requests/sessions.py", line 590, in post
return self.request('POST', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python3.9/site-packages/starlette/testclient.py", line 415, in request
return super().request(
File "/usr/local/lib/python3.9/site-packages/requests/sessions.py", line 528, in request
prep = self.prepare_request(req)
File "/usr/local/lib/python3.9/site-packages/requests/sessions.py", line 456, in prepare_request
p.prepare(
File "/usr/local/lib/python3.9/site-packages/requests/models.py", line 319, in prepare
self.prepare_body(data, files, json)
File "/usr/local/lib/python3.9/site-packages/requests/models.py", line 512, in prepare_body
(body, content_type) = self._encode_files(files, data)
File "/usr/local/lib/python3.9/site-packages/requests/models.py", line 166, in _encode_files
rf.make_multipart(content_type=ft)
File "/usr/local/lib/python3.9/site-packages/urllib3/fields.py", line 268, in make_multipart
self._render_parts(
File "/usr/local/lib/python3.9/site-packages/urllib3/fields.py", line 226, in _render_parts
parts.append(self._render_part(name, value))
File "/usr/local/lib/python3.9/site-packages/urllib3/fields.py", line 206, in _render_part
return self.header_formatter(name, value)
File "/usr/local/lib/python3.9/site-packages/urllib3/fields.py", line 117, in format_header_param_html5
value = _replace_multiple(value, _HTML5_REPLACEMENTS)
File "/usr/local/lib/python3.9/site-packages/urllib3/fields.py", line 90, in _replace_multiple
result = pattern.sub(replacer, value)
TypeError: expected string or bytes-like object
Code is working fine in atom editor, I wanted to know how I can resolve this issue with PyCharm.
import requests
response = requests.get('https://api.github.com/')
print(response.url)
# print status code
print(response.status_code)`
#####################################
ERROR
####################################
1
Traceback (most recent call last):
File "C:\Users\kgowa\PycharmProjects\pythonProject\cs330\7767.py", line 5, in <module>
response = requests.get('https://api.github.com/')
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\requests\api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\requests\api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\requests\sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\requests\sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\requests\adapters.py", line 412, in send
conn = self.get_connection(request.url, proxies)
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\requests\adapters.py", line 315, in get_connection
conn = self.poolmanager.connection_from_url(url)
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\poolmanager.py", line 298, in connection_from_url
return self.connection_from_host(
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\poolmanager.py", line 245, in connection_from_host
return self.connection_from_context(request_context)
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\poolmanager.py", line 260, in connection_from_context
return self.connection_from_pool_key(pool_key, request_context=request_context)
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\poolmanager.py", line 281, in connection_from_pool_key
pool = self._new_pool(scheme, host, port, request_context=request_context)
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\poolmanager.py", line 213, in _new_pool
return pool_cls(host, port, **request_context)
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\connectionpool.py", line 906, in __init__
HTTPConnectionPool.__init__(
File "C:\Users\kgowa\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\connectionpool.py", line 197, in __init__
self.pool = self.QueueCls(maxsize)
TypeError: __init__() takes 1 positional argument but 2 were given
Process finished with exit code 1
Trying to get Firebase set up and this code produces the error. I've also tried making the restful call simply using requests and I'm getting the exact same error. I'm using python 3.4. What's going on here?
from firebase import firebase
firebase = firebase.FirebaseApplication('https://testDB-72927.firebaseio.com/', authentication=None)
result = firebase.get('/test', None)
print(result)
Traceback (most recent call last):
File "/Users/Parthenon/Desktop/TestProject/Test.py", line 19, in <module>
firstFunc(mylist)
File "/Users/Parthenon/Desktop/TestProject/Test.py", line 14, in firstFunc
result = firebase.get('/test', None)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/firebase/decorators.py", line 19, in wrapped
return f(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/firebase/firebase.py", line 274, in get
return make_get_request(endpoint, params, headers, connection=connection)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/firebase/decorators.py", line 19, in wrapped
return f(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/firebase/firebase.py", line 38, in make_get_request
response = connection.get(url, params=params, headers=headers, timeout=timeout)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/requests/sessions.py", line 310, in get
return self.request('GET', url, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/requests/sessions.py", line 279, in request
resp = self.send(prep, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/requests/sessions.py", line 374, in send
r = adapter.send(request, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/requests/adapters.py", line 174, in send
timeout=timeout
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/requests/packages/urllib3/connectionpool.py", line 417, in urlopen
conn = self._get_conn(timeout=pool_timeout)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/requests/packages/urllib3/connectionpool.py", line 232, in _get_conn
return conn or self._new_conn()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/requests/packages/urllib3/connectionpool.py", line 547, in _new_conn
strict=self.strict)
TypeError: __init__() got an unexpected keyword argument 'strict'
My requests module was not up to date.
sudo pip install requests --upgrade
Racking my brain over this. Just signed up here because I was having so much trouble with this. Here is my super simple code:
from jira.client import JIRA
jira_user='username'
jira_pass='password'
jira_server='https://jira-01:8443'
jira_options = {'server': jira_server, 'verify': False}
jira = JIRA(options=jira_options, basic_auth=(jira_user, jira_pass))
When executing, I get this:
Traceback (most recent call last):
File "jira1.py", line 12, in <module>
jira = JIRA(options=jira_options, basic_auth=(jira_user, jira_pass))
File "/usr/lib/python2.6/site-packages/jira/client.py", line 219, in __init__
si = self.server_info()
File "/usr/lib/python2.6/site-packages/jira/client.py", line 1504, in server_info
return self._get_json('serverInfo')
File "/usr/lib/python2.6/site-packages/jira/client.py", line 1894, in _get_json
r = self._session.get(url, params=params)
File "/usr/lib/python2.6/site-packages/jira/resilientsession.py", line 78, in get
return self.__verb('GET', url, **kwargs)
File "/usr/lib/python2.6/site-packages/jira/resilientsession.py", line 63, in __verb
r = method(url, **kwargs)
File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 477, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 465, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 573, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.6/site-packages/requests/adapters.py", line 370, in send
timeout=timeout
File "/usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py", line 544, in urlopen
body=body, headers=headers)
File "/usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py", line 341, in _make_request
self._validate_conn(conn)
File "/usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py", line 761, in _validate_conn
conn.connect()
File "/usr/lib/python2.6/site-packages/requests/packages/urllib3/connection.py", line 238, in connect
ssl_version=resolved_ssl_version)
File "/usr/lib/python2.6/site-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 279, in ssl_wrap_socket
cnx.set_tlsext_host_name(server_hostname)
AttributeError: '_socketobject' object has no attribute 'set_tlsext_host_name'
The same thing happens if I remove 'verify': False
I know I can access the API and this user has permissions because I can hit it correctly with curl and get the right results.
Any help is appreciated.
Resolved by reinstalling python-requests via yum.