尝试在我自己的计算机上构建铬时出错

Posted

技术标签:

【中文标题】尝试在我自己的计算机上构建铬时出错【英文标题】:ERROR when trying to build chromium on my own computer 【发布时间】:2021-03-16 12:34:08 【问题描述】:

现在,我正在按照https://chromium.googlesource.com/chromium/src/+/master/docs/linux/build_instructions.md#Build-Chromium 的说明在自己的计算机上构建 Chromium

一开始还算顺利。但是当我运行时

$ autoninja -C out/Default chrome

当我运行它开始构建时。它开始了。然后发生错误并终止构建过程。

错误是 NameError: name 'unicode' is not defined" 我知道这是与 python2 和 python3 之间的差异相关的常见错误。

但是,我不知道如何让忍者只使用python2并避免这个bug。

如果你能帮助我,我将不胜感激。

【问题讨论】:

你也应该提到操作系统 感谢您的回复。我的操作系统是 Manjaro 20.2.1 Nibia,内核是 x86_64 Linux 5.10.19-1-MANJARO 按照此处的说明进行操作:chromium.googlesource.com/chromium/src/+/master/docs/linux/… 谢谢。但我已经看到了,它无法解决我的问题。不管怎样,还是谢谢你的建议。我想我会花很多空闲来解决这个奇怪的python2or3问题。 您应该查看以下部分:Install depot_tools,其中操作系统将根据 PATH 中的先到者优先考虑 Python 版本 【参考方案1】:

我最近在尝试构建基于 Chromium 的 Brave 浏览器时遇到了这个问题。似乎 chromium 构建基于 python2,这很好,但在脚本中使用对“python”的简单调用。显然,基本上所有现代发行版都在 PATH 中的 python 处放置了一个指向 python3 的符号链接(通常是 /usr/bin/python -> /usr/bin/python3)。我仍然希望有一种方法可以在构建系统中配置“python路径”,但没有找到它,我对ninja不太熟悉。

我“解决”这个问题并管理成功构建的第一种方法是一种我认为是 hack 的方法,如果没有规定它会使您的系统损坏,因此不建议将其作为解决方案,因此不要运行太多其他东西。这是手动临时更新符号链接。假设您的系统上同时拥有 /usr/bin/python2 和 /usr/bin/python3,请删除 /usr/bin/python 处的符号链接并将其替换为 python2:

sudo rm /usr/bin python
sudo ln -s /usr/bin/python2 /usr/bin/python

然后您可以运行 chromium 构建,并在完成后撤消上述更改。请注意,系统上需要 python3 位于符号链接 python 的任何内容在此期间都无法运行。我已成功使用此技术构建 Brave(然后在构建完成后反转更改)。

我也可以为您提供一些其他选择。一是设置pyenv。如果您搜索它,您会发现它是一个套件,允许您管理多个 python 版本并让不同的目录使用不同的目录。我对此进行了研究,并认为它可以工作,但我自己没有做过。

我目前正在进行的下一个选项基本上是 pyenv 所做的手动淡化版本。我会让你知道情况如何。本质是在路径中添加一个符号链接,该符号链接将为该 shell 实例(以及它创建的所有子 shell)重定向 python 调用。假设您直接在明显路径的源中:

mkdir .shims
ln -s /usr/bin/python2 .shims/python
export PATH=/home/yourname/src/Chromium/.shims:$PATH
python --version

这应该打印出你拥有的任何版本的 python2 而不是 python。每当您回到这里工作时,您都必须再次导出新的 PATH。系统的其余部分不受影响,仍然在 python 中找到 python3。您可以打开一个新终端并输入python --version 进行验证。

【讨论】:

【参考方案2】:

我在 Fedora 33 上构建了 Chromium。在 Chromium 构建的某个地方,/usr/bin/python 正在显式运行。在 Fedora 上,这意味着 Python 3。

如果您将 /usr/bin/python 更改为指向 python2.7,我敢打赌您的构建将起作用。

无法为“python”创建别名。

如果可行,请考虑使用替代命令轻松更改 /usr/bin/python:

alternatives command for /usr/bin/python

【讨论】:

以上是关于尝试在我自己的计算机上构建铬时出错的主要内容,如果未能解决你的问题,请参考以下文章

EnableAuthorizationServer 时出错

在 32 位 Xp 计算机上构建 64 位 Qt

有没有一种简单的方法可以在我自己的计算机上在网络浏览器上运行、使用和显示桌面程序,而无需上传到其他服务器或使用在线应用程序?

尝试在本地计算机上检查 Heroku 版本时出错

尝试将 App Bundle 上传到 Play 商店时出错

尝试在另一台计算机上使用 glm 模型进行预测时出错