我试图开发一个模拟类,在特定的应用程序(Win7,python 2.7)中替换serial
。导入文件名冲突
我有一个SerialHandle
类,在应用数量的作品,它的工作是添加逻辑以众所周知的串行方法,当时的想法是与具有相同名称的虚拟文件来替换蟒蛇serial.py
,所以我们不会有更改并输入SerialHandle
。
现在我有Serial
类就像起源这个文件,它工作正常:
serial.py
...Serial()
因为我想真正模拟方法,我需要的SerialException
从serialutil
所以我serial.py我里面“M尝试使用导入它:
from serial import SerialException
但作为预期我会得到这个加薪,因为from serial
变为L在第一OCAL文件:
Traceback (most recent call last):
File "C:/CROW/ATE/DUTDrivers/DD_SimulatorExample/DD_SimulatorExample.py", line 18, in <module>
from Utilities.Serial.SerialHandle.trunk.SerialHandle import SerialHandle
File "C:\CROW\ATE\Utilities\Serial\SerialHandle\trunk\__init__.py", line 4, in <module>
from Utilities.Simulator import serial
File "C:\CROW\ATE\Utilities\Simulator\serial.py", line 11, in <module>
from serial import SerialException
ImportError: cannot import name SerialException
我理解的问题是文件名,因为在任何其他文件,将工作...
我已经试过sys.append(site-packages....serial.py)
没有运气。
问题:
任何方式告诉解释忽略在特定from..import本地文件?
是否有任何其他方式从绝对路径导入?
注:
文件命名为
serial.py
不是它的一个定义,以便更改名称是不相关的决定......重载蟒蛇序列是不一个选项也...
从python源代码复制SerialException并将其粘贴到模块中怎么办? – furins
@furins它肯定会工作,我问这个问题的原因是因为我想知道是否有一些优雅的解决方案... –
那么这种方法应该是你正在寻找的:http://stackoverflow.com/questions/6031584/python import-from-builtin-library-when-module-with-same-name-exists?rq = 1(批准的答案) – furins