Python-从上面的文件访问导入的模块

时间:2018-10-29 17:42:17

标签: python python-3.x

我确定我在做令人尴尬和愚蠢的事情,但是是否可以从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

预先表示感谢和歉意。

2 个答案:

答案 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')

但是我只看到少数需要完成或有帮助的情况。