导入失败。无法找到SCons文件:import SCons.Script

9
这是我在这里的第一个问题,也是我与Scons的第一次接触。我使用命令“sudo python setup.py install --symlink-scons --standard-lib”从源代码构建。看起来没有错误,但失败了,如下所示:
$ scons --version
Import failed. Unable to find SCons files in:
  /usr/local/bin/../engine
  /usr/local/bin/scons-local-2.3.2
  /usr/local/bin/scons-local
  /usr/local/lib/scons-2.3.2
  /System/Library/Frameworks/Python.framework/Versions/2.7/lib/scons-2.3.2
  /usr/local/lib/python2.7/site-packages/scons-2.3.2
  /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scons-2.3.2
  /System/Library/Frameworks/Python.framework/Versions/2.7/lib/scons-2.3.2
  /usr/local/lib/scons
  /System/Library/Frameworks/Python.framework/Versions/2.7/lib/scons
  /usr/local/lib/python2.7/site-packages/scons
  /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scons
  /System/Library/Frameworks/Python.framework/Versions/2.7/lib/scons
Traceback (most recent call last):
  File "/usr/local/bin/scons", line 190, in <module>
    import SCons.Script
ImportError: No module named SCons.Script

Python版本为2.7.5,运行于OS X Mavericks 10.9.4。系统中没有以"SCons.Script"开头的任何文件。

感谢您的帮助。


你能更具体地说明一下“我从源代码运行了一个构建”吗?您是尝试从开发存储库的克隆安装,还是下载并解压源代码 tarball?实际的安装过程应该会告诉您文件安装到哪个文件夹中。最后,模块名“SCons.Script”指的是包文件夹“SCons/Script”中名为“__init__.py”的文件...所以您可能想要搜索“SCons/Script/__init__.py”。 - dirkbaechle
是的,我下载了源代码压缩包并使用上述命令进行构建。由于对Python一无所知,我天真地认为“文件名是模块名称加上后缀.py”链接。然而,在经过大量研究和调查后,发现安装说明是不正确的。Scons库不在上述任何路径下,而是在/usr/local/lib/SCons(注意大小写)下。通过将后者路径添加到PYTHONHOME中,scons现在可以正常工作。感谢您的回复和澄清模块和文件! - ldoanminh
如果您能将发现的问题发布到SCons用户邮件列表“scons-users@scons.org”中,那将是非常棒的。您的贡献可以真正帮助我们改进Mac世界的事情。我们一直在寻找测试人员,他们可以提供一些反馈...所以您将受到热烈欢迎。 - dirkbaechle
一些注意事项:1)看起来你没有使用标准的Python,也没有使用Mac端口的Python。2)当我在虚拟环境中运行上述安装命令时,我没有遇到任何问题。(至少在2.4.0版本中)你能否重试一下2.4.0版本? - bdbaddog
3个回答

4
对于我来说 - OS X (darwin) 最近解决了以下问题(在浪费数日解决此问题后):
一旦安装 scons 但无法工作:
从 Python 控制台打印 Python 导入路径:
$python
>>import sys
>>print sys.path

寻找以“site-packages”结尾的路径。

cd进入该目录并查找以scons开头的文件夹。你至少会看到一个类似于“scons-x.y.z”(版本)的文件夹。

返回到“site-packages”目录。

mkdir SCons

请确保它是空的。

现在将原始SCons目录中的所有内容复制到新目录中(根据需要修改以下行:)

cp -R scons-x.y.z/SCons/ SCons/

0

看起来 scons 使用 LIBPATH 来定位库文件,所以与上面提到的 PYTHONHOME 相比可能更好。


0

我使用conda和brew uninstall scons解决了这个问题。

conda activate
conda install scons
scons

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