ValueError:尝试在非包中进行相对导入

Man*_*edi 3 python python-2.7

我有两个 Python 文件,一个存储在 location 中/Python/plata.py,另一个存储在location 中/Python/tao/mock.py。这是我的plata.py文件的样子::

def printSomething():
    print 'This is a test.'
Run Code Online (Sandbox Code Playgroud)

我正在尝试printSomething()在我的mock.py文件中导入函数,如下所示:

from . import plata

plata.printSomething()
Run Code Online (Sandbox Code Playgroud)

但是,这是我遇到的错误:

Traceback (most recent call last):
File "/home/manas/Python/tao/mock.py", line 1, in <module>
from . import plata
ValueError: Attempted relative import in non-package
Run Code Online (Sandbox Code Playgroud)

我已经包含在__init__.py文件中的位置/Python/__init__.py,并/Python/tao/__init__.py为好。但是,我仍然遇到相同的错误。

这里似乎有什么问题?

344*_*442 5

出于明显的安全原因,包含包的父目录sys.path。但无论如何...

import sys
sys.path.append('..')

import plata
Run Code Online (Sandbox Code Playgroud)

希望这对你有帮助!