如何在Windows 10命令行中让SCons工作?

6
我一直在尝试让SCons在Windows 10 cmd上运行。我通过pip安装了它,因此我认为它位于正确的目录中,因为当我使用py时,python可以在cmd中工作。但是,当我尝试使用scons时,出现以下消息:'scons'未被识别为内部或外部命令、可执行程序或批处理文件。因此,我尝试编辑用户和系统路径变量,将scons添加到目录'C:\Users\dwayn\AppData\Local\Programs\Python38\Lib\site-packages\scons\'下,但我仍然收到相同的错误。我需要编辑什么才能使scons在命令行上运行?注意:我在系统上安装了Anaconda 3。

你是如何安装SCons的?使用pip?还是python setup.py?或者其他方式? - bdbaddog
我通过 pip 安装了 @bdbaddog。 - D Brown
你是在使用 virtualenv 还是直接在 Python 安装中使用 pip? - bdbaddog
Python安装中的pip @bdbaddog - D Brown
5个回答

11

我也曾经遇到过这个问题,因为这个区域的文档非常糟糕,下面是一个快速的答案:

  • 安装Python,包括 pip 并勾选 "将Python添加到PATH"
  • 在命令行中运行 pip install scons。这将安装Scons,但它还不能从命令行使用
  • 如果运行 pip show scons,它会显示Scons代码实际所在的位置(对我来说是 c:\users\username\appdata\roaming\python\python38\site-packages - 但这不是你想要添加到路径的内容
  • Windows 版本的 Scons 通过一个包装程序 .exe 运行(历史上这是一个 .bat 文件,所以到处都有人说要找到 scons.bat...但这个文件不存在)
  • 这个包装程序 scons.exe 位于 Python 安装的 Scripts 文件夹中。对于通用的 Python 3.8,它应该位于这里: C:\Users\username\AppData\Roaming\Python\Python38\Scripts - 在这里你应该能找到 scons 的包装程序
    • 这个 Scripts 文件夹可能在不同的位置,具体取决于你如何安装 Python 以及你使用的版本 - 如果你在那里找不到它,还可以尝试像 C:\Python27\ScriptsC:\Program Files (x86)\Python38-32\Scripts 等位置
  • 将这个文件夹添加到你的 PATH 变量中
  • 重新启动命令提示符来使此更改生效,然后运行 where scons 来检查是否成功 - 这应该返回 scons.exe 的文件路径

现在你应该能够从命令行中运行 scons


当我从scons网站下载.szip文件时,我没有找到任何.exe文件,但我找到了一个scons.bat文件。因此,看起来您将根据最初访问scons的方式获得.bat或.exe文件。 - KBurchfiel

3

根据您获取SCons的位置,可能不包括包装器。在这种情况下,通过python -m SCons命令运行应该可以解决问题。

请注意,它区分大小写并且需要与安装文件夹中的名称匹配,您可以使用以下命令显示:python -m pip show scons


0

很可能你需要添加:

C:\Users\dwayn\AppData\Local\Programs\Python38\Scripts

返回你的路径。

我在路径中有那个,但不幸的是它没有起作用 :( - D Brown
搜索 scons.bat,你在 Python 目录下看到了吗?你是否安装了其他版本的 Python?有可能是你使用另一个 Python 的 pip 安装的。 - bdbaddog
我安装了多个版本的Python,但我相信它是通过3.8的pip安装的,因为批处理文件在树中。批处理文件的目录是../Python38/Scripts/,所以我将尝试将其添加到路径变量中。@bdbaddog - D Brown
作为回答的主要非 scons 部分:当前的 Python 默认不会将其二进制文件的位置放入路径中,但安装程序中有一个可选项可以勾选。相反,您应该使用名为“python launcher(py)”的工具,它确实可以添加到您的路径中。如果您勾选了将Python添加至PATH的框,则仍然不会将Scripts子目录添加到路径中;您需要手动添加。您可以通过在Scripts中使用脚本运行以下命令来运行模块:py -m module ,所以安装看起来像是 py -m pip install scons - 现在您确定它是正确的位置了。不幸的是,scons 无法通过 py -m scons 启动... - Mats Wichmann

0
在我的系统上,我已经安装了Python 3.8,路径为C:\Python38。在使用exe安装程序进行安装时,我勾选了将Python添加到系统路径的选项。然后我安装了scons,它也安装在那个位置。一开始运行scons时出现了问题(之前版本的安装都没有问题),我发现Python安装程序添加的路径需要调整顺序。正确的顺序应该是C:\Python38;C:\Python38\Scripts;%PATH%。原因是scons.bat在C:\Python38中,而scons.py在C:\Python38\Scripts中。要运行scons,它需要先找到scons.bat。
我的建议是确保这两个路径(无论它们在哪里)在您的系统环境路径中,并使得指向scons.bat的路径排在前面,同时确保这些路径在其他Python安装路径之前。

在我的Windows 10上:pip install scons 要求已经满足:scons在c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages中(4.2.0) 要求已经满足:setuptools在c:\program files\windowsapps\pythonsoftwarefoundation.python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\site-packages中(来自scons)(47.1.0)C:\Temp\wiredtiger\wiredtiger>C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\Scripts\scons.exe这正常吗? - user3181125

0
我通过下载https://scons.org/pages/download.html提供的zip文件将scons下载到了我的Windows电脑上。(在我的情况下,该文件名为scons-4.2.0.zip)。下载并解压后,我在我的下载文件夹中有一个名为'socns-local-4.2.0'的文件夹,其中包含scons.bat和scons-4.2.0.bat。(我没有在下载的文件夹中找到任何.exe文件;也许只有当用户通过Python安装时才会产生这种情况。)
为了解决问题中显示的错误消息,我进入控制面板中的编辑系统环境变量(如早期答案所建议的),并将scons-4.2.0文件夹(在我的情况下位于C:\Users\\Downloads\scons-local-4.2.0)添加到我的系统路径中。(对于我的用户路径来说,这是不必要的。)
这样做后,我不再收到问题中引用的错误消息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接