python - 在 Win10 上从源代码构建 python 3.6.6
问题描述
我已经从这里下载了 python 3.6.6 源... https://www.python.org/downloads/release/python-366/ ...并按照如何在 Windows 上构建的说明进行操作(运行 .. /PCbuild/build.bat)。Python 编译并且似乎正在工作(有趣而可怕:在获取外部文件时,它实际上下载了 python-3.7.0 作为依赖项......:/)。但是,看起来构建以某种方式“就位”,并且二进制文件最终位于源的某个子文件夹(../PCbuild/amd64/python.exe)中。这意味着我留下了混合的源代码和编译代码,而不是一些干净/精简和可部署的包。
- 我可以以某种方式提供'
--prefix=/target/build/path
'来定义要构建的目标位置,就像在 linux 上一样? - 有没有办法删除所有 src 文件/文件夹,只保留所需的文件/文件夹(../lib、../include 等...)。
或者一般来说,有没有办法让构建过程更像 linux 上的行为?
谢谢你的帮助,马克斯
解决方案
PCBuild 的 build.bat 适用于开发人员,即用于测试目的。你想要的在\Tools\msi\buildrelease.bat
. 这将创建一个子目录,\PCBuild\
用于放置所有 msi、cab 和 exe 文件以供以后安装。根据自述文件,似乎没有一个选项可以将所有这些文件打包到一个 .exe 文件中,就像所有安装程序最终都会做的那样,但是另一个选项是\Tools\msi\build.bat
有打包选项(即build.bat --pack
)。“但是”,自述文件确实声明buildrelease.bat
应该用于正式发布。这样做的好处是 Pyhton 将使用 PGO 对您自己的硬件进行优化。我也尝试使用这种方法从源代码编译,但我遇到了一个反复出现的错误(和其他错误)的问题:
PGO run did not succeed (no python36!*.pgc files) and there is no data to merge [E:\RepoGiT\3.6\PCbuild\pythoncore.vcxproj]
所以,如果你确实走这条路,发现这个或其他错误,请将错误报告发送到 python 的错误跟踪器网页。更好的是,如果您发现错误及其解决方案,请在此处报告!
推荐阅读
- python - 如何在已打开的 chrome 浏览器选项卡上运行 selenium python 脚本?
- kubernetes - GKE Stackdriver logName 是 [container_name] 而不是 stdout
- awk - 打印带有字段数据条件的行
- expo - Expo上可用的新更新,无限下载
- javascript - 状态更改时反应组件不刷新
- npm - package.json 中 sed 的使用问题
- react-admin - 如何使 AutocompleteArrayInput 允许新值?
- android - Android:使用getter时房间无法访问成员变量
- android - 我可以以编程方式从 Google Play 下载 apk 文件吗
- reactjs - React Native 图像组件中的图像未显示