我正在调用functions.py
到work.py
的函数,该函数运行正常:
from functions import get_ad_page_urls
get_ad_page_urls
函数使用a.o. requests
模块。
现在,无论是否将requests
模块导入work.py
,当我在work.py
中运行被调用函数时,它会出错:NameError: name 'requests' is not defined
。
我在get_ad_page_urls
中定义了functions.py
,包括模块,就像这样,
def get_ad_page_urls():
import requests
<rest of function>
或排除module
,如此,
import requests
def get_ad_page_urls():
<rest of function>
但是没关系,NameError
仍然存在。
我应该如何编写函数,以便在work.py
中调用函数时一切正常?
<小时/> 的回溯:
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)
答案 0 :(得分:0)
我在python 3.4.4上运行完美无缺。
<强> functions.py 强>
import requests
def get_ad_page_urls():
return requests.get("https://www.google.com")
<强> work.py 强>
from functions import get_ad_page_urls
print(get_ad_page_urls())
# outputs <Response [200]>
确保它们位于同一目录中。您可能正在使用两个不同的python版本,其中一个没有请求?