所以现在,我有一个 python 程序,我想将它转换为可执行文件(最好是单个文件)。目前目标系统只有 RedHat(和 CentOS)和 Debian(和 Ubuntu)。
首先,我尝试了 PyInstaller,但在运行它之后,它会创建一个.spec文件和 2 个名为 build 和 dist 的文件夹。我不知道如何从那里开始。
其次,我尝试了 python 附带的 freeze.py。我理解的用法如下:
python /path/to/freeze.py /path/to/myfile.py
这会引发错误***Test Failed*** 2 failures
并且NameError: name 'testdata' is not defined
完整的错误如下:
**********************************************************************
File "/usr/lib/python2.6/site-packages/freeze.py", line 117, in __main__.freeze
Failed example:
testdata = json.loads(
gzip.open("testdata.json.gz", "r").read().decode()
)
Exception raised:
Traceback (most recent call last):
File "/usr/lib64/python2.6/doctest.py", line 1253, in __run
compileflags, 1) in test.globs
File "<doctest __main__.freeze[3]>", line 2, in <module>
gzip.open("testdata.json.gz", "r").read().decode()
File "/usr/lib64/python2.6/gzip.py", line 33, in open
return GzipFile(filename, mode, compresslevel)
File "/usr/lib64/python2.6/gzip.py", line 79, in __init__
fileobj = self.myfileobj = __builtin__.open(filename, mode or 'rb')
IOError: [Errno 2] No such file or directory: 'testdata.json.gz'
**********************************************************************
File "/usr/lib/python2.6/site-packages/freeze.py", line 121, in __main__.freeze
Failed example:
freeze(testdata) == freeze_fast(testdata)
Exception raised:
Traceback (most recent call last):
File "/usr/lib64/python2.6/doctest.py", line 1253, in __run
compileflags, 1) in test.globs
File "<doctest __main__.freeze[4]>", line 1, in <module>
freeze(testdata) == freeze_fast(testdata)
NameError: name 'testdata' is not defined
**********************************************************************
1 items had failures:
2 of 8 in __main__.freeze
***Test Failed*** 2 failures.
我想要一些帮助来使用 2 中的任何一个(或任何其他可以帮助我获得相同结果的工具)。
谢谢。