2014-05-14 3 views
1

hereSCons는이

튜토리얼 말한대로 내가 scons bin/godot를 실행하면, 나는 다음과 같은 오류가의 지침에 따라 Godot engine를 컴파일하려고 _args_from_interpreter_flags 가져 오기 실패

EnsureSConsVersion(0,14); 

import string 
import os 
import os.path 
import glob 
import sys 
import methods 
import multiprocessing 
... 

python SConstruct 실행하려고하면 오류 메시지가 표시됩니다. 스콘 (scons)으로 정의 된 기능들을 노래한다. 모든 수입을 수행하는 이후에 스크립트가 에 실패합니다.

댓글 달기 import multiprocessing은 문제를 해결하지만 풀 요청을 한 경우 변경 사항을 되돌려 야하므로 해당 파일을 수정하고 싶지 않습니다. 이 프로젝트는 꽤 활발해 지므로이 프로젝트는 내 로컬 구성과 관련이 있다고 생각합니다.

scons를 통해 스크립트를 실행하는 경우에만 _args_from_interpreter_flags 스크립트를 가져 오지 못하는 이유는 무엇입니까?

[업데이트]를

나는 신선한 젠투 설치했고, 문제가 계속. 나는 몇 가지 테스트를했고, 나는이 발견 파이썬 터미널에서

>

>>> import SCons.Script 
>>> from subprocess import _args_from_interpreter_flags 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: cannot import name _args_from_interpreter_flags 
>>> import subprocess 
>>> subprocess.__file__ 
'/usr/lib64/python2.7/site-packages/SCons/compat/_scons_subprocess.pyc' 

을하지만이 할 경우 출력은 다릅니다

>>> import subprocess 
>>> subprocess.__file__ 
'/usr/lib64/python2.7/subprocess.pyc' 

그래서 난 내 질문을 업데이트 :이인가를 벌레? 아무도 다른 배포판에서 그것을 재현 할 수 있습니까? 그것이 버그라면 Gentoo 나 SCons에보고해야합니까?

[ANOTHER UPDATE] temp.extend([os.path.join(x, 'lib64') for x in prefs]) did't 작업 같은 오류 추가

. 소형 모듈의 시작 부분에 print sys.path 추가

을 제공합니다

['/usr/lib64/python-exec/python2.7/scons-local-2.3.0', 
'/usr/lib64/python-exec/python2.7/scons-local', 
'/usr/lib64/python2.7/site-packages/lib32/scons-2.3.0', 
'/usr/lib32/scons-2.3.0', 
'/usr/local/lib32/scons-2.3.0', 
'/usr/lib64/python2.7/site-packages/lib/python2.7/site-packages/scons-2.3.0', 
'/usr/lib/python2.7/site-packages/scons-2.3.0', 
'/usr/local/lib/python2.7/site-packages/scons-2.3.0', 
'/usr/lib64/scons-2.3.0', 
'/usr/lib64/python2.7/site-packages/lib32/scons', 
'/usr/lib32/scons', 
'/usr/local/lib32/scons', 
'/usr/lib64/python2.7/site-packages/lib/python2.7/site-packages/scons', 
'/usr/lib/python2.7/site-packages/scons', 
'/usr/local/lib/python2.7/site-packages/scons', 
'/usr/lib64/scons', 
'/usr/lib64/python2.7/site-packages/RBTools-0.6-py2.7.egg', 
'/usr/lib64/python27.zip', 
'/usr/lib64/python2.7',  #It's here, so what's the problem? 
'/usr/lib64/python2.7/plat-linux2', 
'/usr/lib64/python2.7/lib-tk', 
'/usr/lib64/python2.7/lib-old', 
'/usr/lib64/python2.7/lib-dynload', 
'/usr/lib64/python2.7/site-packages', 
'/usr/lib64/python2.7/site-packages/gtk-2.0', 
'/usr/lib64/python2.7/site-packages/wx-2.8-gtk2-unicode'] 
+1

오류 메시지에서 Python 2.7을 사용하고있는 것처럼 보일 수 있지만 "python --version"을 입력하면 명령 줄에 무엇이 표시됩니까? SCons는 python 3+에서 작동하지 않으며 Im이 문제 일 수 있다고 생각합니다. – Brady

+0

'python --version'은'Python 2.7.5'를 출력합니다. 나는 또한 파이썬 3 (gentoo의'select python'을 사용)으로 전환을 시도했지만, 같은 에러가 난다. scons가 올바른 인터프리터를 선택하는 래퍼 파일을 사용하는 것 같습니다. – jspurim

답변

1

이것은 Gentoo의 scons-2.3.0 및 scons-2.3.1 ebuild의 버그입니다 (bug report 참조). 버전 2.3.1-r1 이상에서 수정되었습니다.

2

이 직접 SCons는 연결 문제가 정말없는 것처럼 보인다. 시스템에 외계인 "하위 프로세스"모듈/패키지가 설치되어있을 수 있습니다. 또한 관련된 것으로 보이는 Cannot import name _args_from_interpreter_flags을 확인하십시오.

업데이트 된 질문에 기초 해 보았습니다. 내 컴퓨터 (Python 2.7.3, SCons 2.3.1, Ubuntu 12.04 LTS)에서 Godot을 컴파일하려고 시도했지만 문제가 관련 SConstruct와 관련이 없습니다 (및 하위 폴더에있는 빌드 설명 파일 지원). 원래 "subprocess.py"가져 오기가 실패한 경우에만 "_scons_subprocess"모듈이 사용됩니다. 그래서 나는 SCons 스크립트가 잘못된 sys.path을 셋업하기 시작했다고 생각한다. 이것은 64 비트에서 발생할 수있다. (http://scons.tigris.org/issues/show_bug.cgi?id=2657 참조).

"temp.extend([os.path.join(x, 'lib64') for x in prefs])"을 추가하면 "print sys.path"문에 출력에 "/ usr/lib64/python-exec"와 같은 경로가 표시됩니다. Google 검색에서 나를위한 http://forums.gentoo.org/viewtopic-t-985402-start-0.html 페이지가 나타났습니다.Gentoo에서 프로그램이 pip에 대한 링크로 설치되는 문제를 설명합니다. 주어진 조언에 따라 문제가 해결되는지 확인하십시오.

+0

내 질문 업데이트를 확인하십시오. 효과적으로 다른 하위 프로세스 모듈을 가지고 있지만 scons의 모듈입니다. – jspurim

관련 문제