j'appelle une fonction de functions.py
dans work.py
, qui fonctionne très bien:python: fonction appelée à partir d'autres modules fichier a besoin
from functions import get_ad_page_urls
La fonction get_ad_page_urls
utilise A.O. le module requests
.
Maintenant, si oui ou non j'importer le module requests
dans work.py
, quand je lance la fonction appelée à work.py
, il donne une erreur: NameError: name 'requests' is not defined
.
J'ai défini get_ad_page_urls
dans functions.py
y compris le module, comme si,
def get_ad_page_urls():
import requests
<rest of function>
ou à l'exclusion du module
, comme si,
import requests
def get_ad_page_urls():
<rest of function>
mais il n'a pas d'importance, l'NameError
persiste.
Comment devrais-je écrire la fonction telle que, lorsque j'appelle la fonction work.py
tout fonctionne bien?
Traceback:
get_ad_page_urls(page_root_url)
Traceback (most recent call last):
File "<ipython-input-253-ac55b8b1e24c>", line 1, in <module>
get_ad_page_urls(page_root_url)
File "/Users/myname/Documents/RentIndicator/Python Code/idealista_functions.py", line 35, in get_ad_page_urls
NameError: name 'requests' is not defined
functions.py
import requests
import bs4
import re
from bs4 import BeautifulSoup
def get_ad_page_urls(page_root_url):
response = requests.get(page_root_url)
soup = bs4.BeautifulSoup(response.text)
container=soup.find("div",{"class":"items-container"})
return [link.get("href") for link in container.findAll("a", href=re.compile("^(/inmueble/)((?!:).)*$"))]
work.py
import requests
import bs4
import re
from bs4 import BeautifulSoup
from functions import get_ad_page_urls
city='Valencia'
lcity=city.lower()
root_url = 'https://www.idealista.com'
house_href='/alquiler-habitacion/'
page_root_url = root_url +house_href +lcity+ '-' + lcity + '/'
get_ad_page_urls(page_root_url)
Pouvez-vous publier la trace complète pour cette erreur de nom? – Liteye
Mes excuses, mais qu'est-ce que "full traceback"? – LucSpan
@LucSpan L'erreur complète –