gpt4 book ai didi

python - Linux下将pyw文件导入为模块

转载 作者:可可西里 更新时间:2023-11-01 09:29:08 24 4
gpt4 key购买 nike

我从我的一位同事那里得到了一些用 Python 编写的适用于 Windows 的代码。他使用了几个模块,其中文件的扩展名为 mymodule.pyw 而不是 mymodule.py。这简单地通过做

import mymodule

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

Traceback (most recent call last): File "main.pyw", line 27, in import core.main_window

ImportError: No module named main_window

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

为什么在 Python 和 Windows 中的处理存在这种差异,可以采取什么措施来解决这个问题?

引用资料: I seem to have found the original patch that added pyw support to windows, but with no argument as to why it shouldn't also apply to Linux.

最佳答案

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 一点都不在乎!

关于python - Linux下将pyw文件导入为模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21386094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com