2013-02-16 11 views
5

Ich habe SCONs 2.2.0 in Python 2.7 auf Windows 7 installiert. Wenn ein "scons" von cmd ausgeführt wird, bekomme ich die Fehlermeldung "scons wird nicht erkannt und ein interner oder externer Befehl" Wie kann ich das lösen?Ausführen von Scons 2.2.0 unter Windows 7 cmd


Das Problem ist, dass scons-2.2.0-setup.exe Pfad im System nicht eingerichtet. Die Ordner "scons.bat" und "scons-2.2.0.bat" befinden sich beide im Ordner "C:/Python27/Scripts". Wenn Sie dies auf Pfad setzen, wird das Problem gelöst. Jetzt tritt ein neues Problem auf, wenn eine einfache C++ - Datei mit der Nachricht "cl" kompiliert wird, wird nicht als interner oder externer Befehl erkannt. (Windows 7 64 Bit). Bitte irgendwelche Ideen können hilfreich sein.

Antwort

6

Haben Sie es mit der SCons windows installer installiert? Es sollte alles für dich einrichten.

  • : C: \ Python25 \ Scripts
  • C: \ Python25 \ scons

In Ihrem Fall c:\Python25 mit der ersetzen

Nach dem SCons installation instructions, SCons sollte hier installiert werden Standort Ihrer Pythong 2.7 Installation.

Stellen Sie außerdem sicher, dass das SCons Python-Skript in Ihrem Pfad ist. Möglicherweise müssen Sie den Befehl cmd neu starten, damit die Änderungen am Pfad wirksam werden.

+0

von dieser Seite habe ich scons scons-2.2.0-setup.exe für Windows und es nie den Weg für mich und ich gesetzt kann keine spezifische SCON-ausführbare Datei auf dem Pfad zu finden! – Amani

+0

Link funktioniert nicht (mehr). Hier ist die generische Download-Seite: http://www.scons.org/download.php – Geier

1

Um cl zu verwenden, müssen Sie die Visual Studio-Befehlszeile verwenden und dann scons von dort aus ausführen, es ist eine .bat-Datei und der scripts-Ordner in Ihrer Python-Installation. Wenn Sie Skripte in Ihren Pfad einfügen, sollte das Problem gelöst werden, wie ich es kürzlich selbst getan habe.

0

Ich habe die 2 neueste Version (3.0.0 und 3.0.1) installiert.

Der gleiche Problem, vielleicht weil

  1. Die Windows-Installer waren auf der Suche nach einer Installation von Python innerhalb C:/Programme ... und es kann gefunden nur Python 3.x (was nicht kompatibel ist)

  2. setup.py hat ein kleines Problem.

Wie auch immer, ich kam mit der folgenden Lösung.

  1. Installieren mit python setup.py install
  2. Gehen Sie zu Ihrer Python-Installationsverzeichnis
  3. setzen entweder (oder beide) der folgenden Dateien in Unterordner Scripts:

    • scons.bat, wenn Sie laufen scons aus cmd
    • .210, wenn Sie laufen scons von Msys oder Cygwin

Ich habe unter dem Code dieses 2-Skripte setzen (die .bat Teil der Quelle war und die .sh wurde von ihm inspiriert).

Datei <Python_dir>/Scripts/scons.bat

@REM Copyright (c) 2001 - 2017 The SCons Foundation 
@REM src/script/scons.bat rel_3.0.0:4395:8972f6a2f699 2017/09/18 12:59:24 bdbaddog 
@echo off 
set SCONS_ERRORLEVEL= 
if "%OS%" == "Windows_NT" goto WinNT 

@REM for 9x/Me you better not have more than 9 args 
python -c "from os.path import join; import sys; sys.path = [ join(sys.prefix, 'Lib', 'site-packages', 'scons-3.0.0'), join(sys.prefix, 'Lib', 'site-packages', 'scons'), join(sys.prefix, 'scons-3.0.0'), join(sys.prefix, 'scons')] + sys.path; import SCons.Script; SCons.Script.main()" %1 %2 %3 %4 %5 %6 %7 %8 %9 
@REM no way to set exit status of this script for 9x/Me 
goto endscons 

@REM Credit where credit is due: we return the exit code despite our 
@REM use of setlocal+endlocal using a technique from Bear's Journal: 
@REM http://code-bear.com/bearlog/2007/06/01/getting-the-exit-code-from-a-batch-file-that-is-run-from-a-python-program/ 

:WinNT 
setlocal 
@REM ensure the script will be executed with the Python it was installed for 
set path=%~dp0;%~dp0..;%path% 
@REM try the script named as the .bat file in current dir, then in Scripts subdir 
set scriptname=%~dp0%~n0.py 
if not exist "%scriptname%" set scriptname=%~dp0Scripts\%~n0.py 
python "%scriptname%" %* 
endlocal & set SCONS_ERRORLEVEL=%ERRORLEVEL% 

if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto returncode 
if errorlevel 9009 echo you do not have python in your PATH 
goto endscons 

:returncode 
exit /B %SCONS_ERRORLEVEL% 

:endscons 
call :returncode %SCONS_ERRORLEVEL% 

Datei <Python_dir>/Scripts/scons

#!/bin/bash 

# Script to launch scons from MSys or Cygwin 
# Inspired by scons.bat delivered with SCons 

# Ensure the script will be executed with the Python it was installed for 
BASEDIR=$(dirname "$0") 
PATH="$BASEDIR:$BASEDIR/..:$PATH" 

# Try the script named as the .bat file in current dir, then in Scripts subdir 
BASENAME=$(basename "$0") 
SCRIPT=${BASENAME%.*} 
SCRIPTNAME="$BASEDIR/$SCRIPT.py" 
if ! [ -f "$SCRIPTNAME" ]; then 
    SCRIPTNAME="$BASEDIR/Scripts/$SCRIPT.py" 
fi 

# Run 
python "$SCRIPTNAME" [email protected] 
SCONS_ERRORLEVEL=$? 

# Check error code 
if [ SCONS_ERRORLEVEL == 9009 ]; then 
    echo "You do not have python in your PATH" 
fi 

# End 
exit $SCONS_ERRORLEVEL 
Verwandte Themen