我将程序打包在我的机器上的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位,这有什么区别?
答案 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无关紧要。