2013-10-18 100 views
0

我可能路徑不準確,但無法跟蹤它。我有以下聲明:從進口不能在Linux上工作

from serial import SerialException 
# from Utilities.UnitsFormat import UnitsFormat 
from Loggers.MainLogger import NetworkLogger as Logger 
import Utilities.Serial.SerialHandle.SerialHandle as SH 

它運作良好,在Windows團購未能找到在Debian的Linux的路徑:

> [email protected]:/# cd usr/CROW/ATE/Drivers/PSU_PR_V2/ 
[email protected]:/usr/CROW/ATE/Drivers/PSU_PR_V2# python PSU_PR.py 
Traceback (most recent call last): 
    File "PSU_PR.py", line 79, in <module> 
    from Loggers.MainLogger import NetworkLogger as Logger 
ImportError: No module named Loggers.MainLogger 
[email protected]:/usr/CROW/ATE/Drivers/PSU_PR_V2# 

我怎樣才能解決這個,而我留在路徑管理簡單,支持工作系統? 我有沒有幫助嘗試這樣:

import os 
if os.name == 'nt': 
    sys.path.append("C:\CROW\ATE") 
else: 
    sys.path.append("usr/CROW/ATE") 
+0

你可以顯示目錄結構嗎?你有'Loggers'目錄嗎?它有一個'_MainLogger'子目錄和一個'__init __ .py'嗎? –

+0

你的sys.path在每個系統上的外觀如何? –

+0

在windows中它看起來像: C:\ CROW \ ATE \和所有在 下的項目在linux中的結構是一樣的: /usr/CROW/ATE和所有項目在 之下__init__.py在每個包中,代碼在Windows下工作。 – MiooiM

回答

2

假設文件你操縱從位於約在CROW/ATE目錄下的路徑。您可以使用此代碼來獲取系統的獨立路徑到該目錄,如下所示:

import re 
import os 

def get_project_dir(): 
    return re.findall(''.join(['.*', os.path.join('CROW', 'ATE')]), os.path.abspath(__file__))[0] 

,然後做

sys.path.append(get_project_dir()) 

* 我無法測試在Windows操作系統上,但是這應該是關。

+0

明天我會試試,謝謝! – MiooiM

+0

工程就像一個魅力!非常感謝! – MiooiM