2017-05-07 33 views
2

添加模块我有我的Python项目的以下文件夹结构:的Python:如何从同级文件夹

pythonApp    --> Folder 
|--ABC    --> Package 
    |--__init__.py  --> Empty File 
    |--abctest.py  --> Module 
|--DEF    --> Package 
    |--__init__.py  --> Empty File 
    |--deftest.py  --> Module 
|--Common    --> Package 
    |--__init__.py  --> Empty File 
    |--constants.py --> Module 

我想导入constants.pyCommon包在abctest.py下。使用from Common import constants将抛出错误Module not found。有没有解决方案。

+0

你有'__init __。py'在'pythonApp'根目录吗? –

+0

@GarrettKadillak:是的,在pythonApp根目录下,我有__init__.py文件 – Quest

回答

1
abctest.py

,添加父目录使用__file__作为当前模块的名称蟒蛇路径,然后取目录名称的目录名称来计算它:

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

from Common import constants 

说明:python 2似乎需要一个__init__.py文件(甚至为空)在Common目录下能够识别Common作为模块,而python 3则不能。

+0

Fabre:我所做的是我直接在pythonApp文件夹下创建了一个run.py。我将run.py设置为启动文件。并包含以下代码:'import os,sys sys.path.append(os.path [0] +'\ ABC')'。它在当地运作良好。但是当我创建一个可执行文件时,它会崩溃。 – Quest

+0

你能告诉我们你是如何创建你的可执行文件的(也许编辑你的问题来包含那部分) –

相关问题