如何在python 2中导入本地包?

如何在python 2中导入本地包?,python,python-2.7,python-3.x,python-import,Python,Python 2.7,Python 3.x,Python Import,查看所附scrren快照中的错误 new是包含python 3.6的unittest模块和python 2.7的new2包含unittest模块的目录。我理解第一种情况下出现的错误是因为缺少StringIO模块。但是为什么尽管编写了与Python3相同的命令,Python2.7仍会引发错误呢。这两种情况下的语法不同吗 这有帮助吗?: import sys sys.path.append('path/to/your/file') import your.lib 您需要一个\uuuu init.\

查看所附scrren快照中的错误

new
是包含python 3.6的
unittest
模块和python 2.7的
new2
包含
unittest
模块的目录。我理解第一种情况下出现的错误是因为缺少
StringIO
模块。但是为什么尽管编写了与Python3相同的命令,Python2.7仍会引发错误呢。这两种情况下的语法不同吗

这有帮助吗?:

import sys
sys.path.append('path/to/your/file')
import your.lib

您需要一个
\uuuu init.\uuuu py
文件。请看这里:

init.py文件是使Python将目录视为包含包所必需的;这样做是为了防止具有公共名称(如字符串)的目录无意中隐藏稍后在模块搜索路径上出现的有效模块。在最简单的情况下,init.py可以只是一个空文件,但它也可以执行包的初始化代码,或者设置all变量,后面将介绍


但是,由于我只是简单地复制了
unittest
包,它有一个'
\uuuu init\uuuuu.py
,默认情况下每个模块都有这个'
.new2
是否包含目录
unittest
unittest
的内容?它包含
unittest
文件夹。内容在该目录中。因此在
new2
目录下没有
\uuuu init\uuuu.py
文件,因此这不符合python包结构。尝试将
unittest
的所有内容复制到
new2
目录中,然后像以前一样导入。@Alex Eschoo然后导入行需要更改为
import new2
。或者,您可以简单地将一个
\uuuu init\uuuuuu.py
添加到文件夹
new2
(使其成为一个模块),然后使用相同的导入行(
import new2.unittest
)。