擅长:python、mysql、java
<p>没有官方途径可以得到这个。在</p>
<p>Rosetta通过一个名为/usr/libexec/oah/translate的程序工作。从官方角度讲,这是一个可能会发生变化的实现细节,因此不应依赖于此。然而,我们知道它从来没有改变,直到10.7,当罗塞塔被完全杀死,所以它是安全的,尽管有警告。Maria Zverina的答案就是这样(如果你加上路径的话),这可能是最简单的。或者,也许,只是检查是否存在这样的文件,而不是运行它。在</p>
<p>另外,Rosetta还附带了intel10.4-10.6(早期版本的操作系统只有PPC,没有Intel)。同样,从官方角度来说,你不应该依赖操作系统版本,而是使用适当的api来检查功能。但在这种情况下,似乎没有任何合适的api,所以这可能是合适的。除了不必在10.6版本中安装Rosetta的警告之外,这不会检测到关闭复选框的用户。如果您想这样做:</p>
<pre><code>import platform
release, versioninfo, machine = platform.mac_ver()
versionbits = [int(bit) for bit in release.split('.')]
rosetta = (versionbits < (10,7) and not machine.startswith('ppc'))
</code></pre>
<p>(请注意,这也是“坏的”,因为在某些版本中平台.mac\u()做了一些你不应该做的事情,获得OSX版本的正确方法是调用格式塔。但是mac\u ver()是标准库的一部分,因此至少您可以依赖它来尽可能地完成一些骇人听闻的工作,而且它正在进行广泛的测试。)</p>
<p>如果你不是真的在追求Rosetta,但不管你是可以在本地运行PPC还是通过Rosetta运行PPC,那就更简单了。所有未随Rosetta提供的10.7之前版本都是PPC;所有10.7+版本都不能运行PPC周期。所以,只要“release<;'10.7'”就可以了。(再次声明,10.6可以选择跳过Rosetta安装。)</p>