Python 在Linux下将pyw文件作为模块导入

Python 在Linux下将pyw文件作为模块导入,python,windows,import,module,Python,Windows,Import,Module,我从一位同事那里得到了一些用Python为Windows编写的代码。他正在使用几个模块,其中文件的扩展名是mymodule.pyw,而不是mymodule.py。这只需要做一些简单的工作 导入mymodule 即使没有名为mymodule.py的文件。但是,在Linux(我的例子是Ubuntu 13.04)中,这不起作用。我收到此表单的错误消息: 回溯(最近一次呼叫最后一次): 文件“main.pyw”,第27行,在 导入core.main_窗口 ImportError:没有名为main\u窗口

我从一位同事那里得到了一些用Python为Windows编写的代码。他正在使用几个模块,其中文件的扩展名是mymodule.pyw,而不是mymodule.py。这只需要做一些简单的工作

导入mymodule

即使没有名为mymodule.py的文件。但是,在Linux(我的例子是Ubuntu 13.04)中,这不起作用。我收到此表单的错误消息:

回溯(最近一次呼叫最后一次): 文件“main.pyw”,第27行,在 导入core.main_窗口

ImportError:没有名为main\u窗口的模块

只需将模块文件重命名为.py即可解决此问题,但这并不可取,因为我希望在Windows和Linux上使用相同的软件

为什么Python和Windows中的处理方式会有这种差异?可以做些什么来修复它

参考资料:
pyw扩展适用于windows版本的python,因为windows在CLI和GUI应用程序之间有着明显的区别。单独的扩展映射到单独的python解释器,py映射到python.exe(CLI),pyw映射到pythonw.exe(GUI)

这仅与双击python文件以启动适当的解释器有关;因此,逻辑上应该具有pyw扩展名的唯一文件是需要双击的“入口点”脚本;所有其他文件,即使是在windows上,也可以而且应该使用py扩展名


在linux上,pyw和py都不能特别帮助使脚本可双击,而是应该在第一行上有一个“shebang”,并具有可执行文件权限(chmod+x)。在unix上,可执行文件通常根本没有扩展,但如果您愿意,仍然可以以.pyw结尾,linux一点也不在乎

而且,您需要
chmod+x
it:)这对于您实际运行的脚本是正确的,但是对于您加载的模块,Windows和Linux之间存在差异(似乎没有什么好的理由),Windows将加载pyw文件,而Linux“无法处理”(或者不会)。我最初的问题仍然是ie。有没有办法让Python(在Linux下)将pyw文件作为模块加载。重命名所有pyw文件当然是另一种可能性,但这需要我编辑我的同事程序,我想避免。将pyw文件作为模块加载具有某些应用程序,如我在原始问题的链接中所述。