我有一个老的c++/python项目,其中包含一个python27.zip文件。这个zip文件包含pyo优化的文件。
我正在尝试将python从2.7更新到最新的3.7.1 (也更新了*.so库文件)
我做了接下来的步骤:
./configure --enable-shared --prefix=~/python-3.7.1/dist
make
sudo make install我看到我有~/python-3.7.1/dist/lib/python3.7,它的结构接近我在我的旧2.7zip中的结构。接下来,我尝试将所有文件夹编译成pyo,如下所示:
python3.7 -O -m compileall .它告诉我它需要Lib并包含(标题),所以我也在那个位置复制了这两个文件夹。
再次在python3.7 -O -m compileall .中执行dist/lib/python3.7向我展示
Listing './Lib/site-packages'...
Listing './Lib/sqlite3'...
....还有一些错误,如:
Compiling './Lib/test/badsyntax_future10.py'...
*** File "./Lib/test/badsyntax_future10.py", line 3
from __future__ import print_function
^
SyntaxError: from __future__ imports must occur at the beginning of the file我没看到里面有个小矮人。另外,如果我试图对1个文件执行相同的操作,比如python3.7 -O token.py (没有错误),也没有内部的pyo。
不要严格地评判我,我同意我理解这个编译过程可能是错误的。
发布于 2019-01-15 19:16:00
我必须创建自己的工具,因为我没有找到任何适合将所有python模块编译到一个位置/存档的工具。
此帮手可在github上使用。它只在ubuntu进行了测试。
有了这个模块,您可以:
用法示例:
$ ./py_compile_helper.py ./Python-3.7.1/Lib ./out -z -c -o2https://stackoverflow.com/questions/53319737
复制相似问题