ImportError:无法从if_yuname_u3;==“\uuu main_u”的文件中导入X。任何不删除的解决方案,如果名称==“main_u”?

2024-09-29 22:19:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个文件n1711_001_insilico和{}在同一个文件夹中。我想要两个变量(mzdf,它是<class 'pandas.core.frame.DataFrame'>,而{}是{}),所以我在第二个文件的顶部做import

import numpy as np
import pandas as pd
from n1711_001_insilico import mzdf, charge

我得到了ImportError: cannot import name mzdf(以及charge)。在第一个文件中,我显式地从函数返回mzdf和{},并按如下方式调用它们:

^{pr2}$

更新:根据评论,我现在知道问题来自第一个文件中的if __name__ == "__main__":。有什么方法可以在不删除if __name__ == "__main__"的情况下修复此问题?在


Tags: 文件namecoreimport文件夹pandasifmain
1条回答
网友
1楼 · 发布于 2024-09-29 22:19:07

在该语句中,您要导入以下语句:

if __name__ == "__main__":
    mzdf, charge = CALC(peptides_report, aa_dict, charge_from=1, charge_to=6)

这意味着只有在命令行中直接执行文件时,例如使用python n1711_001_insilico.py,命令CALC才会实际运行和执行,这是设置两个变量mzdfcharge的函数。在

换句话说,只有当您直接用python n1711_001_insilico.py运行文件时,这两个变量才存在,当您导入它时,Python不会运行该函数。在

这是设计的;导入文件后,变量__name__指向文件名,因此条件失败。在

现在,要解决这个问题,您必须在导入文件时运行CALC函数,并获得自己的结果副本:

^{pr2}$

相关问题 更多 >

    热门问题