我試圖開發一個模擬類,在特定的應用程序(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