2012-03-02 3 views
13

응용 프로그램을 이식성있게 만드는 것이 필요합니다. 설치 프로그램이 필요하지 않습니다. 나는 py2exe를 보았고 Windows에서 실행하려면 설치를 실행해야 할까 봐 걱정됩니다.어떻게 휴대용 파이썬 데스크탑 응용 프로그램을 만들 수 있습니까?

내 질문은, 모든 설치 (모든 종속성 및 libs 포장)없이 휴대용 파이썬 데스크톱 응용 프로그램을 만들 수 있습니까, USB/CD에서 드래그하면 실행됩니까?

(이것은 C++ 런타임 라이브러리를 설치하는 사용자를위한 두통이 있기 때문에 이것은 매우 중요합니다 ...)

감사합니다.

+0

사용자가 C++ 런타임 라이브러리를 설치하는 것이 골칫거리라고 말하는 이유는 무엇입니까? 프로그램의 설치 프로그램에? 설치를 위해 Inno Setup을 사용하여 py2exe로 Python 소프트웨어를 패키지했습니다. 설치 프로그램에서 Visual C++ 런타임을'/ qb' 플래그로 재배포 가능하도록 실행하면 사용자가 아무 것도 할 필요가 없습니다. –

+0

@ Series8217 감사합니다. 나는 그것을 할 수 있다고 생각하지만, 요점은 설치자가 없다는 것이다. 휴대용 일 수 있다면 멋지다! – CppLearner

답변

9

당신은 py2exe으로이 방법을 사용할 수 있습니다 http://www.py2exe.org/index.cgi/SingleFileExecutable

는 기본적으로, 당신은 하나의 실행에 필요한 모든 파일과 폴더를 포장하는 NSIS를 사용합니다. 실행하면 필요한 파일이 임시 디렉토리로 확장되고 실행 파일이 실행되며 종료하면 임시 파일이 자동으로 삭제됩니다.

동일한 결과를 얻으려면 NSIS 대신 Inno Setup을 사용하는 py2exe와 함께 제공되는 예제도 있습니다. site-packages\py2exe\samples\extending에 설치되었습니다.

+0

감사합니다. 읽었을 때, 내가 틀렸다면 수정하십시오. 설치 프로그램을 컴파일 한 후에 전체 폴더를 다른 컴퓨터에 복사 할 수 있습니다. 실행 파일을 실행하면 tmp 폴더에 dll과 같은 적절한 파일이 생성됩니다.이 파일은 사용자가 앱을 닫으면 삭제됩니다. 내 응용 프로그램에는 XML 데이터베이스가 있기 때문에 지속성이 필요합니다. 따라서 레코드를 파괴하려고하지 마십시오. tmp에서 무엇이 만들어 졌는지 어떻게 알 수 있습니까? 감사. – CppLearner

+0

@CppLearner 수정. "설치 프로그램"을 컴파일 한 후에는 다른 컴퓨터로 옮길 수있는 유일한 실행 파일은 "설치 프로그램"입니다. 해당 실행 파일을 실행하면 해당 내용 (응용 프로그램 exe 및 필수 DLL 파일 등)이 압축 해제되고 응용 프로그램이 실행되며 응용 프로그램이 종료되면 임시 폴더가 삭제됩니다. 예제 NSIS 스크립트를 편집하여 동작을 제어 할 수 있습니다. –

+1

@CppLearner 영구적 인 데이터를 원한다면, 그 위치를 ... 아마도'% homepath % \ AppData \ MyXMLDB' 또는 비슷한 것으로 저장하십시오. 그런 다음 응용 프로그램은 어디에서 실행했는지에 관계없이 항상 찾을 수 있습니다. –

3

Portable Python을 포크하여 필요한 응용 프로그램과 라이브러리를 포함하도록 수정할 수도 있습니다. 설치없이 모든 드라이브/네트워크 위치에서 실행되며 2.xx 또는 3.xx 기반 Python 코어를 선택할 수 있습니다

관련 문제