0

我可能有路径不准确,但无法跟踪。我有以下声明:

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 中找不到路径:

> root@debian-armhf:/# cd usr/CROW/ATE/Drivers/PSU_PR_V2/
root@debian-armhf:/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
root@debian-armhf:/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")
4

1 回答 1

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 上对此进行测试,但这应该很接近。

于 2013-10-18T19:59:31.007 回答