SCons 的若干問題


問題1:找不到 SCons 的 Python3 庫

CentOS7 使用 pip3 安裝 SCons,默認安裝位置是 /usr/local/bin/scons, 庫(engine)的默認安裝位置是 /usr/local/lib/python3.6/site-packages/scons,但在運行時默認的搜索 engine 的路徑不包含安裝路徑,導致錯誤。(顯然 SCons 沒有處理好 Python2 和 Python3,只搜索了 Python2)

$ scons
SCons import failed. Unable to find engine files in:
  /usr/local/lib/scons-3.1.2
  /usr/lib/scons-3.1.2
  /usr/local/lib/scons-3.1.2
  /usr/lib/python2.7/site-packages/scons-3.1.2
  /usr/lib64/scons-3.1.2
  /usr/local/lib/scons
  /usr/lib/scons
  /usr/local/lib/scons
  /usr/lib/python2.7/site-packages/scons
  /usr/lib64/scons
Traceback (most recent call last):
  File "/usr/local/bin/scons", line 195, in <module>
    import SCons.Script
ImportError: No module named SCons.Script

解決方法

如下建立軟鏈接,

$ sudo ln -fs /usr/local/lib/python3.6/site-packages/scons /usr/local/lib/scons

即可正常使用,

$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o hello.o -c hello.c
gcc -o hello hello.o
scons: done building targets.

 

對於 Ubuntu18.04 ,也存在同樣的問題,使用 pip3 將把 SCons 庫安裝到 /usr/local/lib/python3.6/dist-packages/scons/,同樣需要建立軟鏈接,

$ sudo ln -fs /usr/local/lib/python3.6/dist-packages/scons /usr/local/lib/scons

 

 問題2:java 非標准安裝情況下,找不到 javac

對於 java ,如果安裝使用 OpenJDK,則 java, javac 會被安裝到標准路徑 /usr/bin/java/usr/bin/javac

但如果手動安裝 Java,可能不是標准路徑。例如,我如下安裝 java,

$ cd /usr/share
$ sudo tar --gzip -xvf jdk-8u91-linux-x64.tar.gz

然后再設置環境變量,打開 .bashrc 添加,

# for java
export JAVA_HOME=/usr/share/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

這樣 java 和 javac 會在 /usr/share/jdk1.8.0_91/bin 下,但是 SCons 找不到……

解決方法

如下設置軟鏈接,

$ sudo ln -s /usr/share/jdk1.8.0_91/bin/java /usr/local/bin/java
$ sudo ln -s /usr/share/jdk1.8.0_91/bin/javac /usr/local/bin/javac

然后才能用 SCons 編譯 java。

 

……

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM