我确定我在做令人尴尬和愚蠢的事情,但是是否可以从two.py中的功能(文件在同一目录中)访问one.py中导入的模块?
one.py
import requests
import two
print(two.get_google())
two.py
def get_google():
return requests.get('http://google.com')
错误我得到...
python3 one.py
Traceback (most recent call last):
File "one.py", line 3, in <module>
print(two.get_google())
File "/myfolder/two.py", line 2, in get_google
return requests.get('http://google.com')
NameError: name 'requests' is not defined
预先表示感谢和歉意。
答案 0 :(得分:7)
导入语句在导入模块的名称空间中绑定名称 。您必须将requests
导入直接放入需要使用该名称的模块中:
# one.py
import two
print(two.get_google())
^已从one
(未使用的地方)删除,并添加到two
:
# two.py
import requests
def get_google():
return requests.get('http://google.com')
答案 1 :(得分:2)
(我们很清楚,首先考虑wim的方法(然后是第二,第三,...))
这似乎是一种怪异的方法,但是如果您知道这是您需要的东西,则 可以 将在one.py中加载的模块作为参数传递给two.py:
one.py
import requests
import two
print(two.get_google(requests))
two.py
def get_google(requests):
return requests.get('http://google.com')
但是我只看到少数需要完成或有帮助的情况。