命令行模式下Python导入问题

5 投票
1 回答
12446 浏览
提问于 2025-04-17 02:38

我有以下代码结构,在我的IDE(Aptana Studio)中运行得很好:

/ProjectName/
    /lib
    /src
        /Module1
        /Module2
        /Module3
         __init__.py
         pyClass.py         ##Python Class
        /main
         main.py

main.py :

import Module3.pyClass as pc

myClass=pc.pyClass()

但是当我尝试从命令行运行时,却出现了导入错误!

importError: No module named Module3.pyClass

我是在/main目录下运行的。是不是因为它不知道在哪里找到Module3来导入?我应该怎么告诉它去哪里找Module3呢?

谢谢。

1 个回答

12

如果你从 main 目录运行程序,src 目录就不会被 Python 找到。这意味着你需要做两件事之一:要么从 src 目录运行脚本(可以用一个包装脚本,或者直接移动脚本),要么把 src 目录添加到 sys.path 中。这样做可能是你想要的。下面是具体的做法:

import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

(如果你是用 py2exe/py2app/cxfreeze 等工具来打包程序,那么你需要用稍微不同的方法,因为它们的工作方式不同。)

撰写回答