无法运行zip文件:“找不到'__main__'模块”

时间:2014-01-09 13:49:18

标签: python python-3.x

我将程序打包在我的机器上的zip文件中,它包含__main__.pyc并且在我的机器和其他机器上运行良好,但是当我将它复制到第三台机器时,它不起作用。它提供的唯一信息是

/usr/local/bin/python3: can't find '__main__' module in 'main.zip'

这对我没有帮助。我想这可能是因为这台机器是在云上运行的虚拟机?

我机器上的

python3是:

Python 3.3.1 (default, Apr 24 2013, 20:58:52)
[GCC 4.6.3] on linux
第三台机器上的

是:

Python 3.3.1 (default, Jan  8 2014, 18:36:12)
[GCC 4.6.3] on linux

我机器上的linux版本是

Linux Svr2 3.2.0-34-generic-pae #53-Ubuntu SMP Thu Nov 15 11:11:12 UTC 2012 i686 i686 i386 GNU/Linux
第三台机器上的

是:

Linux ubuntu 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

我的机器操作系统是32位,目标机器是64位,这有什么区别?

3 个答案:

答案 0 :(得分:4)

  

它包含__main__.pyc

     

我的机器操作系统是32位,目标机器是64位

是的,这可能是造成问题的原因。 pyc个文件是源的编译版本(存储在.py个文件中)。这些编译的文件非常特定于版本,编译为32位的pyc很可能无法在64位Python上运行,尽管版本相同。

您应该只在zip中存储pyc文件,而不是使用py文件。这样,执行的Python解释器就可以根据需要解释代码。

答案 1 :(得分:1)

python main而不是python main.zip一样运行。

答案 2 :(得分:0)

完成了问题。

zip文件无法执行,因为目标机器上的python3安装不好,并且错过了很多像zlib和_ssl这样的库。

重新安装python3后,程序可以运行。操作系统位不同或使用pyc无关紧要。