Han*_*off 6 python windows import module
我从我的一位同事那里得到了一些用 Python 编写的适用于 Windows 的代码。他使用了几个模块,其中文件的扩展名为 mymodule.pyw 而不是 mymodule.py。这只是通过做
导入我的模块
即使没有名为 mymodule.py 的文件。但是,在 Linux(在我的情况下为 Ubuntu 13.04)中,这不起作用。我收到这种形式的错误消息:
回溯(最近一次调用最后一次):导入 core.main_window 中的文件“main.pyw”,第 27 行
导入错误:没有名为 main_window 的模块
只需将模块文件重命名为 .py 即可解决问题,但这不是可取的,因为我想在 Windows 和 Linux 上使用相同的软件。
为什么在 Python 和 Windows 中的处理存在这种差异,以及可以采取哪些措施来修复它?
参考资料: 我似乎找到了为 windows 添加了 pyw 支持的原始补丁,但没有争论为什么它不应该也适用于 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 一点也不关心!
| 归档时间: |
|
| 查看次数: |
1930 次 |
| 最近记录: |