PY2EXE : DLL 때문에 컴파일 된 Python Windows 응용 프로그램이 실행되지 않습니다.

StackOverflow https://stackoverflow.com/questions/1145662

  •  16-09-2019
  •  | 
  •  

문제

나는 Python을 처음 접했다고 고백 할 것이고 아직 내가 무엇을하고 있는지 잘 모르겠습니다. 최근 Python 2.6.2 및 Wxpython 2.8을 사용하여 매우 작은 Windows 응용 프로그램을 만들었습니다. 그리고 그것은 훌륭하게 작동합니다. 나는 그것이 정상적으로 얼마나 잘 작동하는지 매우 만족합니다. 일반적으로 나는 파이썬 통역사를 통해 직접 호출 할 때 다음과 같습니다.

> python myapp.py

그러나 한 걸음 더 나아가서 실제로 이것을 독립형 실행 파일로 컴파일하고 싶었습니다. 그래서 나는 따라 갔다 이 지침 py2exe를 사용하는 Wxpython Wiki에서. 처음에는 msvcr90.dll이 누락되었다고 말하면서 명령 줄에 오류가 발생했습니다. 그런 다음 msvcr90.dll을 내 python dlls 폴더에 복사했습니다. 그것은 그것이 필요한 일을 성공적으로 수행했기 때문에 처음으로 그것을 고쳤던 것처럼 보았습니다. 프로그램이 의존하는 일부 DLL 파일이 있다는 빠른 경고로 마무리되었습니다.

그래서 나는 py2exe가 생성하고 실행 파일을 실행하려고 시도한 Dist 폴더로 탐색했습니다. 그러나 그것을 열려고 시도하는 것은 다음과 같은 오류 대화 만하면됩니다.

This application failed to start because MSVCR90.dll was not found.
Re-installing the application may fix this problem.

그래서 나는 계속해서 MSVCR90.dll을이 DIST 폴더에 다시 복사했습니다. 그러나 그것은 속임수를하지 않았습니다. 그런 다음 Windows System32 디렉토리에 복사했습니다. 그건 그렇게하지 않았다. 이 일을 작동 시키려면 어떻게해야합니까?

도움이 되었습니까?

해결책

MSVCR*.dll을 복사 할 수는 없습니다. 나란히 조립 규칙을 사용하여 설정해야합니다. Sam이 지적한대로 재분배 가능한 패키지를 설치 하여이 작업을 수행하거나 규칙을 준수하는 한 실행 파일과 함께 넣을 수 있습니다.

여기에서 "Visual C ++ 라이브러리 DLLS 배포"섹션을 참조하십시오. Xcopy를 사용하여 배포하는 방법 자세한 내용은 기본적으로 응용 프로그램이 다음과 같습니다.

c:\My App\MyApp.exe
c:\My App\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest
c:\My App\Microsoft.VC90.CRT\msvcr90.dll

이점의 한 가지 이점은 Admin이 아닌 사용자가 앱을 사용할 수 있다는 것입니다 (재분배 가능한 설치 프로그램을 통해 런타임을 설치하려면 관리자가되어야한다고 생각합니다). 또한 설치자가 필요하지 않습니다. 파일을 PC에 복사 할 수 있으며 모든 것이 작동합니다.

다른 팁

나는 설치를 믿는다 Microsoft C ++ 재배포 가능한 패키지 필요한 DLL을 올바르게 설치합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top