2013-10-18 68 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