我对Python还是很陌生,但我仍然很习惯。我有一个项目,该项目是使用一堆仅包含函数定义的文件编写的。我决定在OOP范例中重新制作它,这就是发生的情况:
那时,我有两个文件:
Main
| ---- loggingManager.py
| ---- servoManager.py
在我拥有的ServoManager.py脚本中:
from loggingManager import *
...
from time import sleep
,一切正常。我可以使用loggingManager.py中的所有 def 功能,而不会出现任何问题。
现在我是这样的:
Main
| ---- Logger.py
| ---- ConfigurationWrapper.py
ConfigurationWrapper的内容是:
import configparser
class ConfigurationWrapper:
default_path = '/home/pi/Desktop/Bree/config.ini'
def __init__(self, path_to_file=None):
if path_to_file is None:
path_to_file = self.default_path
...
和Logger看起来像这样:
class Singleton(type):
_instances = {}
def __call__(cls, *args, **kwargs):
if cls not in cls._instances:
cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwarg$
else:
cls._instances[cls].__init__(*args, **kwargs)
return cls._instances[cls]
class Logger():
__metaclass__ = Singleton
我的目标是导入:
import ConfigurationWrapper
在Logger.py脚本文件中,但是每次执行此操作时,都会出现错误(通过在MacOS的终端中键入“ python Logger”):
Traceback (most recent call last):
File "Logger", line 1, in <module>
import ConfigurationWrapper
ImportError: No module named ConfigurationWrapper
我试图在同一文件夹中添加空的__init __.py文件,但仍然没有任何反应。
答案 0 :(得分:0)
尝试在导入的模块之前添加点(。)
import .ConfigurationWrapper
或导入您的课程
from .ConfigurationWrapper import ConfigurationWrapper
点(。)表示您正在从同一目录导入。
答案 1 :(得分:0)
我解决的方法是添加:
$regNum
但是我想知道那是多么合适。