Python没有正确地将文件作为模块导入

Posted

技术标签:

【中文标题】Python没有正确地将文件作为模块导入【英文标题】:Python not importing files as modules correctly 【发布时间】:2019-05-17 16:03:09 【问题描述】:

我正在尝试让 Python 代码在使用 CGI 模块的 Web 浏览器上运行,以及我尝试导入到主程序中的一些其他文件模块。

我的初始程序(按要求运行)如下:

#!C:\Users\Student\AppData\Local\Programs\Python\Python37-32\python.exe

import cgi

def htmlTop():
    print("Content-type: text/html")
    print()
    print("""<!DOCTYPE html>
        <html lang="en">
            <head>
                    <meta charset="utf-8"/>
                    <title>My Server Side Test</title>
            </head>
            <body>""")

def htmlTail():
    print("""</body>
    </html>""")

if __name__ == "__main__":
    try:
        htmlTop()
        print("Hello World")
        htmlTail()
    except:
        cgi.print_exception()

在与该程序相同的文件夹中,我有一个名为“_serverTestModules”的 Python 文件,其中包含:

def _serverTestFunction():
print("The file has been imported successfully")

如果我再添加:

import _serverTestModules

到原始文件,两者都在同一个目录中,并尝试从原始代码访问该函数,我得到这个错误:

Traceback (most recent call last):
  File "C:/xampp/htdocs/inventorysystem/_serverTest.py", line 26, in <module>
    _serverTestFunction()
NameError: name '_serverTestFunction' is not defined

所以基本上我的测试程序可以工作,但是一旦我尝试从同一目录中的其他文件(我的主项目需要的东西)导入函数,代码就会失败。这是计算机系统或网络的问题吗?我在 Stack Overflow 上看到的所有其他答案要么没有答案,要么答案不正确,因此非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

你需要使用这个

from _serverTestModules import _serverTestFunction

【讨论】:

非常感谢,但是我的其他文件里面有很多功能,有没有办法一次将文件中的所有功能导入主程序?我试过使用 from _serverTestModules import * 但这不起作用。 你可以使用 from _serverTestModules import * 我尝试在主文件中这样做,但没有成功。还有其他建议吗?

以上是关于Python没有正确地将文件作为模块导入的主要内容,如果未能解决你的问题,请参考以下文章

如何在python3中正确导入同一目录下的模块

如何在 Python 模块中正确使用相对或绝对导入?

django中的python模块未正确导入

Python的错误导入已经安装模块问题,怎么解决

用Python正确导入文件/模块

如何在python3中正确导入同一目录下的模块