如果在python3子文件夹中工作,如何从主文件夹导入file.py

如果在python3子文件夹中工作,如何从主文件夹导入file.py,python,python-3.x,import,python-import,Python,Python 3.x,Import,Python Import,我的结构如下: /mainfolder file.py //subfolder test.py 我正试图在test.py中导入file.py。因为某种原因,我就是不能 我试过了 from .file import * 返回: Traceback (most recent call last): ModuleNotFoundError: No module named '__main__.file'; '__main__' is not a package 还尝试将路径添加到

我的结构如下:

/mainfolder
file.py
    //subfolder
    test.py
我正试图在
test.py
中导入
file.py
。因为某种原因,我就是不能

我试过了

from .file import *
返回:

Traceback (most recent call last):
ModuleNotFoundError: No module named '__main__.file'; '__main__' is not a package
还尝试将路径添加到sys.path:

import sys
import os
sys.path.extend([os.getcwd()])

也不起作用

您使用的是什么IDE?我将Pycharm社区IDE与Python3一起使用,它与文件导入的
或文件导入的
功能一起使用(我想发表评论,但我不能,因为我还没有50%的声誉)

您使用的IDE是什么?我将Pycharm社区IDE与Python3一起使用,它与文件导入的
或文件导入的
功能一起工作
(我想发表评论,但我不能,因为我还没有50%的声誉)

看起来您正在使用
python test.py
运行
test.py
,因此
test
模块被视为顶级模块

如果不是通过添加
\uuuu init\uuuuu.py
文件,则应首先使文件夹成为Python包:

/mainfolder
__init__.py
file.py
    /subfolder
    __init__.py
    test.py
然后,您可以将外部
main文件夹
附加到
sys.path

import sys
import os
sys.path.append(os.path.join(os.getcwd(), '..'))
之后,
从文件导入someobject
而不进行相对导入。警惕外卡进口


有关当前方法不起作用的原因的详细信息,请参阅和。

看起来您正在使用
python test.py
运行
test.py
,因此,
test
模块被视为顶级模块

如果不是通过添加
\uuuu init\uuuuu.py
文件,则应首先使文件夹成为Python包:

/mainfolder
__init__.py
file.py
    /subfolder
    __init__.py
    test.py
然后,您可以将外部
main文件夹
附加到
sys.path

import sys
import os
sys.path.append(os.path.join(os.getcwd(), '..'))
之后,
从文件导入someobject
而不进行相对导入。警惕外卡进口


有关当前方法不起作用的原因,请参阅和。

旁注:您应该使用包而不是文件夹。旁注:您应该使用包而不是文件夹。假设我在//子文件夹中有一个test2.py,并且test.py从文件导入*开始,我如何在test2.py中导入test.py?放弃
导入*
。明确指定要导入的内容。如果
子文件夹
是一个子包,那么从主文件夹导入
test
。子文件夹导入测试
应该是正确的假设我在//子文件夹中有一个test2.py,并且test.py从文件导入*开始,我如何在test2.py中导入test.py?放弃
导入*
。明确指定要导入的内容。如果
子文件夹
是子包,则
导入.test
从主文件夹导入测试
应该可以