我有一個奇怪的錯誤重:在Python 2.7的進口,當一個腳本調用不同的腳本調用不同的腳本 - testbench.py
進口user.py
進口hardware.py
的Python 2.7奇怪的進口預警
testbench.py
運行的硬件測試平臺user.py
需要用戶輸入(即,測試硬件的序列號)hardware.py
具有大約有效#SNs一些信息報告(在整數highestSerial
)user.py
使用hardware.highestSerial
可變
在兩種情況下,工作流是這樣的:
>>>python
>>>import user
>>>help(user)
>>>exit()
>>>python testbench.py
CASE 1
\\testbench.py
\\user.py
\\hardware.py
\\__init__.py
\\hardware\\__init__.py
\\hardware\\hardwareList.txt
輸出1
- 從幫助沒有警告(用戶)
- 調用腳本輸出:
AttributeError: 'module' object has no attribute 'highestSerial'
CASE 2
\\testbench.py
\\user.py
\\hardware.py
\\__init__.py
\\hardware\\hardwareList.txt
輸出2
- 幫助(用戶)出來提出:
__warningregistry__ = {(Not importing directory 'hardware': missing _...
- 調用腳本正常工作
在第一種情況下,案件之間
差異,在它裏面有__init__.py
硬件文件夾 - 沒有警告,但代碼符(因爲我正在尋找的屬性不在文件夾中)
在第二種情況下,沒有硬件文件夾,所以我得到一個Not importing directory
警告,但代碼工作正常。
現在顯然我可以重新命名一些東西,但是你們有沒有知道幕後發生了什麼?
編輯而事情完全瘋了,當我把hardware.py \硬件裏面\但我們會忘記的場景暫時
EDIT 2我的想法一直是我想要做一個硬件。 py腳本來訪問\ hardware \文件夾中的所有東西 - 序列號列表,硬件類型等,其中沒有一個是在python中,而是在.txt文件中,.csv文件等。這是一個完全錯誤的方式來做事情?
當我這樣做時,我收到警告。爲什麼? – medivh
@medivh:因爲'import hardware'意思是Python *有'*'來考慮'hardware'目錄,所以需要'__init __。py'來警告你。你也有'hardware.py' **這個事實**不會改變這種行爲。 –
對我的第二次編輯有任何評論? – medivh