Python 从不同文件中的两个类导入时出现问题
从驻留在两个不同文件中的两个不同类导入实例时遇到问题。这两个文件看起来像: 文件名:doublemap.pyPython 从不同文件中的两个类导入时出现问题,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,从驻留在两个不同文件中的两个不同类导入实例时遇到问题。这两个文件看起来像: 文件名:doublemap.py import stops class DoubleMap(object): def __init__(self): self.url = "https://someurl" mapInstance = DoubleMap() from doublemap import DoubleMap import urllib.request as urllib2 import
import stops
class DoubleMap(object):
def __init__(self):
self.url = "https://someurl"
mapInstance = DoubleMap()
from doublemap import DoubleMap
import urllib.request as urllib2
import json
class Bus_stops(DoubleMap):
def __init__(self):
self.stops_maps = {}
self.stops_URL = DoubleMap().url+"stops"
def fetch_details(self):
json_obj = urllib2.urlopen(self.stops_URL)
data = json.load(json_obj)
for stops_details in data:
self.stops_maps[stops_details['id']] = {
stops_details['name'],
stops_details['description'],
stops_details['lat'],
stops_details['lon'],
stops_details['buddy'],
# stops_details['fields']
}
return self.stops_maps
temp = Bus_stops()
print(temp.fetch_details())
文件名:stops.py
import stops
class DoubleMap(object):
def __init__(self):
self.url = "https://someurl"
mapInstance = DoubleMap()
from doublemap import DoubleMap
import urllib.request as urllib2
import json
class Bus_stops(DoubleMap):
def __init__(self):
self.stops_maps = {}
self.stops_URL = DoubleMap().url+"stops"
def fetch_details(self):
json_obj = urllib2.urlopen(self.stops_URL)
data = json.load(json_obj)
for stops_details in data:
self.stops_maps[stops_details['id']] = {
stops_details['name'],
stops_details['description'],
stops_details['lat'],
stops_details['lon'],
stops_details['buddy'],
# stops_details['fields']
}
return self.stops_maps
temp = Bus_stops()
print(temp.fetch_details())
疑问:
文件“Doublemap/Doublemap/stops.py”,第1行,在
从doublemap导入doublemap
文件“Doublemap/Doublemap/Doublemap.py”,第1行,在
进口站
文件“Doublemap/Doublemap/stops.py”,第1行,在
从doublemap导入doublemap
ImportError:无法导入名称“DoubleMap”
有什么建议吗 创建一个文件名为
\uuuu init\uuuu.py
,该文件名与两个脚本位于同一目录下
您的项目目录结构应该如下所示:
pro/
__init__.py
doublemap.py
stops.py
顺便说一下,您可以在标题处进行相关导入
init.py的主要用途是初始化Python包。这个
证明这一点的最简单方法是查看
标准Python模块
您在doublemap.py
中的代码:
import stops
如果不需要,您应该在doublemap.py
的开头导入停止
在Stops.py中
from doublemap import DoubleMap
k = DoubleMap()
print(k.Method())
在doublemap.py中使用方法返回变量
class DoubleMap(object):
def __init__(self):
self.url = "https://someurl"
def Method(self):
return self.url
进口周期是邪恶的。不要
此外,此处不需要它:doublemap.py
没有理由导入stops.py
:
import stops
文件名:doublemap.py
# import stops # NO IMPORT CYCLE!
class DoubleMap(object):
def __init__(self):
self.url = "https://someurl"
mapInstance = DoubleMap()
文件名:stops.py
from doublemap import DoubleMap
import urllib.request as urllib2
import json
class Bus_stops(DoubleMap):
def __init__(self):
self.stops_maps = {}
self.stops_URL = DoubleMap().url+"stops"
def fetch_details(self):
json_obj = urllib2.urlopen(self.stops_URL)
data = json.load(json_obj)
for stops_details in data:
self.stops_maps[stops_details['id']] = {
stops_details['name'],
stops_details['description'],
stops_details['lat'],
stops_details['lon'],
stops_details['buddy'],
# stops_details['fields']
}
return self.stops_maps
temp = Bus_stops()
print(temp.fetch_details())
但是我想把脚本保存在两个不同的文件中。@AdityaKushwah我已经检查了你的代码,你有了python相对导入