在Python中从子文件夹导入

Chema Sarmiento

就是这种情况。我正在使用Python 3.6

我目前有下一个文件夹组织:

/MainProject
  __init__.py
    /Folder1
      pyscript1.py
      pyscript2.py
      __init__.py
    /Folder2
      pyscript3.py
      __init__.py

所以,我试图从pyscript3获取pyscript1.py中存在的函数。我还在每个级别添加了一个init .py。在pyscript3.py中,我尝试了以下操作:

from . import Folder1

给出错误:

ImportError: cannot import name 'Folder1'

我也尝试过:

from .Utils import script1

给出错误:

ModuleNotFoundError: No module named '__main__.Utils'; '__main__' is not a 
package

我知道我可以通过以下方式使用sys和os解决此问题:

sys.path.append(os.path.realpath('../..'))

但是我想知道如果不使用sys是否有可能。

怀疑脚本

请注意,这Folder1是一个目录,.py脚本是您的模块。

pyscript3你应该能够去:

from Folder1 import pyscript1

然后,您可以访问名称methodname如下的方法

pyscript1.methodname()

否则,您可以直接导入该方法,例如:

from Folder1.pyscript1 import methodname

并像这样使用它:

methodname()

编辑:

为了使您的程序能够看到Folder1Folder2,您需要从该MainProject文件夹中运行程序

无论移动pyscript3到你MainFolder或写另一个脚本,让我们称之为main.py,并调用所需的代码实例化的类/叫你想要的功能pyscript3.py

总而言之,您始终希望从项目的基本文件夹中运行输入模块。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档