2014-01-24 2 views
0

저는 cx_Freeze를 사용하여 Python 스크립트를 Windows 실행 파일로 변환하고 있습니다. Scripts 디렉토리에있는 cxfreeze 스크립트를 사용하고 있습니다. 나는 cxfreeze에 의해 생성 된 실행 파일이 다른 디렉토리에 있고 .dll과 .pyd가 다른 디렉토리에 있기를 바란다. 내가 별도의 디렉토리에 두 사람을 넣어했을 때 한 .exe 내가 실행하고 (DLL의 &으로 .pyd 년대가) 다른 디렉토리에 위치하기 때문이 happends 알고 .dll 및 .pyd 파일을 다른 디렉토리에 보관

 
The application has failed to start because python33.dll was not found. Try reinstalling to fix this problem 

있어 작동하지 않았다. 다른 디렉토리에 보관할 수있는 방법이 있습니까? 내가 실행 파일을 생성하려면 다음 명령을 사용하고

 
C:\Python33\Scripts>cxfreeze C:\Users\me\Desktop\setup.py --target-name=setup.exe --target-dir=C:\Users\me\Desktop\new_dir 
+1

[왜?] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) 실행 파일과 DLL을 같은 디렉터리에 저장하는 것이 잘못된 이유는 무엇입니까? – abarnert

+0

어쨌든, Windows에서 응용 프로그램은'.'을 포함하는'% PATH %'에서 DLL을 찾지만'../ Libs /'는 포함하지 않습니다. 예를 들어'PATH = % PATH %; ../ Libs' 다음에'./Executable/MyApp.exe'...와 같은 실행 파일에 .cmd 래퍼를 쓸 수는 있지만 대개 좋은 생각은 아닙니다. – abarnert

+0

initscript ([여기 예] (https://bitbucket.org/anthony_tuininga/cx_freeze/src/default/cx_Freeze/initscripts/ConsoleSetLibPath.py?at=default))에서 환경 변수를 수정하지만 여전히 initscript를 실행하기 전에 최소한 python33.dll을 찾아야합니다. –

답변

0

Windows 용 파이썬은 정말 (이 경우, python33.dll에서) 주요 pythonXX.dll가 C에 존재해야합니다 : \ WINDOWS를 \ system32를 \

파이썬을 다른 위치, 네트워크 드라이브 등에 설치하는 다양한 조합에서 우리는 항상 pythonXX.dll을 system32 디렉토리에 복사하기 위해 작은 배치 파일을 사용해야했습니다.

나는 PATH 조작이 당신을 위해 작동한다고 생각지 않습니다, 그냥 system32에 dll을 복사 해보고 문제가 없어지는지보십시오.

또 다른 버전의 Python을 설치하여 C : \ Python33을 말한 경우 해당 Windows 기반 설치 관리자가 대신이 작업을 수행하므로 다른 Python 위치를 실행할 수 있습니다.

관련 문제