2009-12-24 5 views
5

간단한 파이썬 스크립트는 파이썬이 설치되지 않은 Windows 서버에서 실행해야합니다.Windows 서버에서 py2exe로 생성 된 응용 프로그램을 실행할 수 없습니다.

로컬 컴퓨터에서 잘 실행되는 script.exe로 건강한 dist 하위 디렉토리를 생성 한 py2exe를 사용했습니다.
그러나 서버 (Windows Server 2003 R2)에서 실행하면 다음과 같이 표시됩니다.
시스템에서 지정한 프로그램을 실행할 수 없습니다.

및 ERRORLEVEL는 9020.

어떤 아이디어가?

+0

또한 ServerFault.com에이 질문을 시도 할 수 있습니다. – DOK

+0

64 비트 OS에서 32 비트 바이너리를 실행하려고합니까 (그 반대의 경우도 마찬가지입니다)? –

+0

두 기계 모두 32 비트입니다. –

답변

1

나는이 문제의 원인을 찾지 못했지만 동일한 스크립트에서 py2exe와 함께 python 2.5를 사용하면 서버에서 정상적으로 작동합니다.

2.6 아래의 py2exe에 문제가있는 것 같습니다.

+1

Py2exe는 Python2.6에서 잘 작동합니다. 여러 번 사용했습니다. 분산 응용 프로그램에 포함 할 Microsoft Visual C 런타임 DLL의 버전을주의해야합니다. 자세한 내용은 py2exe 자습서의 5 단계에서 설명합니다. http://www.py2exe.org/index.cgi/Tutorial#Step5 –

2

일부 필수 DLL이 누락되었을 수 있습니다. 누락 된 부분을 확인하려면 depends.exe을 사용해보십시오. 그것은 아마도 msvc-something-something.dll 일 것입니다.

+0

그건 내 처음 추측했지만, 불행히도 모든 DLL이 제자리에 있습니다. –

1

Python 2.6은 Visual Studio 2008에 대해 빌드되므로 대상 컴퓨터에 Visual C++ 2008 Redistributable package에서 제공되는 Visual Studio 2008 라이브러리도 있어야합니다.

Visual Studio 2008 재배포 가능 패키지가없는 Windows XP 또는 Server 2003을 새로 빌드 할 때 Python 2.6 py2exe 실행 파일이 앞에서 설명한 오류와 함께 실패하지만 재배포 가능 패키지를 설치 한 후 실행 파일 정상적으로 작동합니다.

+0

안녕하세요. Visual C++ 2008 재배포 가능 패키지 * SP1 *을 (를) 연결 한 것이 잘못된 버전이라는 것을 확신합니다. SP1의 버전 C 런타임 DLL이 잘못되어 작동하지 않습니다. 올바른 버전은 내 대답을 참조하십시오. –

+0

흥미 롭습니다. SP1 재배포 가능 패키지로 테스트 한 것 같았지만 분명히 오인되었습니다. 수정 해줘서 고마워. –

6

py2exe가 작동하려면 응용 프로그램에 올바른 버전의 Microsoft C 런타임 DLL을 포함시켜야합니다. 이 설치 프로그램의 SP1이 포함되어 있음을

http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

참고 : Python2.6를 들어

, 이것은 Microsoft Visual C++ 2008 재배포 가능 패키지에서 얻을 수 있습니다 MSVCR90.dll 버전 9.0.21022.8입니다 다른 버전의 DLL은 작동하지 않습니다.

은 내가 py2exe에 튜토리얼에 신중을 설명 올해 초 동안을 보냈다, 그래서 그냥 링크 것이다 : http://www.py2exe.org/index.cgi/Tutorial#Step5

관련 문제