2014-05-11 6 views
0

내 시스템 (Mac OS X 10.6.8)에서 콘솔의 많은 오류로 인해 Enthought Canopy를 즉시 열 수 없으므로 Enthought Canopy를 열 수 없습니다 :글로벌 OS X 프레임 워크가 로컬 시스템과 충돌하여 Canopy가 열리지 못함

11/05/14 20.28.00 [0x0-0x1271270] .com.Canopy [53010] objc [53015] : 클래스 QCocoaPageLayoutDelegate는 /Users/name/Applications/Canopy.app/appdata/canopy- 1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/PySide /../../../../ lib/QtGui.framework/Versions/4/QtGui 및 /Library/Frameworks/QtGui.framework/Versions/4/QtGui. 이 중 하나가 사용됩니다. 어떤 것이 정의되지 않았습니까?

11/05/14 20.28.00 [0x0-0x1271270] .com.Canopy [53,010] : QObject를 moveToThread 하였다 : 현재 스레드 (0x102837760)는 객체의 스레드 (아니다 0x120281040).

11/05/14 20.28.00 [0x0-0x1271270] .com.Canopy [53,010] 스레드

11/05/14 20.28.00 [0x0-0x1271270 (0x102837760)

을 대상으로 이동할 수 없다. com.Canopy [53010] Mac OS X에서는 두 세트의 Qt 바이너리를 동일한 프로세스에로드 할 수 있습니다. 모든 플러그인이 올바른 Qt 바이너리와 컴파일되었는지 확인하십시오. DYLD_PRINT_LIBRARIES = 1로 내보내고 한 세트의 바이너리 만로드되는지 확인하십시오.

는 사실 내가 기본 위치에 설치 Qt는의 버전이 (그래서 나는 유형 /Library/Frameworks/QtGui.framework의 많은 프레임 워크를 가지고) 이것은 캐노피 내부에있는 버전과 충돌이 나타납니다. 이미 존재하는 Qt 설치를 제거하지 않고이 충돌을 해결할 수있는 방법이 있습니까?

역설적이게도 Qt와 pyside가 필요했기 때문에 내가 필요한 유일한 프로그램 인 chaco을 설치할 때의 문제를 피하기 위해 Canopy를 설치하기로 결정했습니다. 이로 인해 Canopy를 설치하여 탈출하기를 희망하는 다른 프로그램 (Qt-> pyQt-> vtk-> mayavi-> chaco-> pyside -> ...)을 설치 한 후 긴 야크 면도 마라톤이 시작되었습니다. 그러므로 나는 그 시점에서 필사적이다.

+0

패키지 된/빌드 된 Canopy는 함께 행동하고 번들로 제공되는 프레임 워크를 제대로 참조해야합니다. –

답변

0

OS의 나이를 고려하면 이전 버전의 Canopy도 실행하고있을 가능성이 큽니다. 나는 그들의 웹 사이트에서 현재 (64 비트) 버전을 다운로드하고 그것을 대해 다음 스크립트 실행 :

모든보고
#!/bin/tcsh #-x 

# create a working directory 
if (! -e ~/Canopy) then 
    mkdir ~/Canopy 
endif 

# get a list of all files (and their types) 
if (! -e ~/Canopy/Canopy-files.txt) then 
    find /Volumes/Enthought/Canopy.app/ -type f -exec file {} \; > ~/Canopy/Canopy-files.txt 
endif 

# grep that list for all dylibs 
if (! -e ~/Canopy/Canopy-dylibs.txt) then 
    grep 'dynamically linked shared library' ~/Canopy/Canopy-files.txt > ~/Canopy/Canopy-dylibs.txt 
endif 

# `otool -DL` all dylibs in that list looking for 'QtGui' 
foreach line ("`cat ~/Canopy/Canopy-dylibs.txt`") 
    set file = `echo $line | awk '{split($0,a,":"); print a[1]}'` 
    otool -DL $file | grep 'QtGui' 
end 

QtGui 경로가 있었다 :

@rpath/lib/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.5) 

을 실제 dylib가 있었다 :

/Volumes/Enthought/Canopy.app//appdata/canopy-1.4.0.1938.macosx-x86_64/Canopy.app/Contents/lib/QtGui.framework/Versions/4/QtGui: 

응용 프로그램을 확인하려면 10 행의 경로를 해당 응용 프로그램 버전의 경로로 변경하십시오.

잘못된 경로를 발견하면 'install_name_tool'을 통해 변경할 수 있습니다. 경고 :이 도구는 자동으로 실패합니다. 항상 기대 한대로했는지 확인하십시오.

0

하나의 가능한 원인은 PYTHONPATH 환경 변수가 다른 Python 설치를 가리 키도록 설정된 경우입니다. 이것은 Python에 설치되지 않은 모듈과 패키지 (일반적으로 사내)를 가리 키기위한 PYTHONPATH의 잘못된 사용입니다.어떤 Python 설치 (심지어 실행중인 것은 아니며, 확실히 다른 것으로 설치되지 않음)의 내장을 가리 키기위한 것이 아닙니다. Enthought는 이러한 유형의 오류에 대해 Canopy를보다 강력하게 만드는 방법을 고려하고 있습니다. 한편, Canopy를 시작하기 전에 PYTHONPATH를 설정 해제해야합니다.

그렇지 않은 경우 모든 환경 변수의 값을보고하십시오 (필요에 따라 수정 됨). 터미널에 env 명령을 입력하면됩니다.