2014-12-21 12 views
2

우분투 14.04에서 Nuitka으로 실험 중이며 실행 파일을 만들고 실행하려고합니다. 내가 명령 nuitka hello.py을 사용하여 hello.exe로 설정 한 내용Nuitka 컴파일 된 Python 실행 파일을 실행하는 방법

print("Hello please") 

을 가진 파일을 hello.py 있습니다. 내가 와인 1.7을 사용하여 실행하려고 할 때, 나는 다음과 같은 오류 얻을 수 :이 Nuitka 문제라고 생각

$ wine hello.exe 
wine: Bad EXE format for Z:\home\crclayton\hello.exe. 

을하지 와인 내가 만든되는 Helloworld.exe을 실행하는 와인을 사용할 수 있기 때문에 C#에서. 누구든지 그것을 고칠 방법을 알고 있습니까?

은 편집 : 우분투에 어떤 행운을 가지고 있지되었다

그래서 난 내 윈도우 7 파티션에 hello.exe을 밖으로 시험 (우분투 및 Windows는 64 비트)와 나는 다음있어 오류 :

The version of this file is not compatible with the version of windows you're running. Check your computer's system information to see whether you need an x86 (32 bit) or x64 (64 bit) version of the program, and then contact the software publisher.

Nuitka가 32 비트 exe를 생성하고 64 비트 OS에서 실행하려고합니까? 그렇다면 누군가는 그것을 고치는 법을 알고 있습니까? 매뉴얼 Nuitka으로 당

+1

'file hello.exe'를 실행하면 무엇을 얻게됩니까? – icktoofay

+1

@icktoofay GNU/Linux 2.6.24, BuildID [sha1] = 2818f1ff4011ed5d22666d59b490cfac8aef0af9에 대해 ELF 64 비트 LSB 실행 파일, x86-64, 버전 1 (SYSV), 동적 링크 (공유 라이브러리 사용) 64 비트이므로 문제가 될 수 없습니다. –

+3

Nuitka가 Linux 실행 파일을 생성하고 있음을 알 수 있습니다. 물론 Linux에서./hello.exe를 실행하지만 Linux 실행 파일이고 Windows 실행 파일이 아니기 때문에 Windows는이를 인식하지 못하고 Wine도 실행되지 않습니다. – icktoofay

답변

6

The resulting filename will be program.exe on all platforms, that doesn't mean it doesn't run on non-Windows! But if you compile program we wouldn't want to overwrite it, or be unsure which one is the compiled form, and which one is not.

당신이 nuitka hello.py on Ubuntu (and thus GCC에게 ELF) you will create hello.exe`하지만, 리눅스 전용 ELF 실행 파일을 실행하면

는 Windows (및 GCC/PE)에 nuitka hello.py를 실행하는 경우 당신은 hello.exe을 만들지 만 Windows 전용 PE 실행 파일 (WINE을 통해 Linux에서 실행될 수 있음)을 만듭니다.

Nuitka, Cython, cx_freeze는 OS 독립적 인 실행 파일을 생성하지 않지만, 특정 OS 용으로 빌드 할 ns

두 가지 중 하나를 수행하려고합니다. 1) Windows 용 Linux에서 빌드하십시오. 이 경우에 크로스 컴파일을 설정하거나 와인에 최종 빌드를해야합니다 (예 : 파이썬, nuitika, gcc ...)

2) Linux 용으로 linux로 빌드합니다. chmod +x hello.exe; ./hello.exe # 그런 다음 이름을 바꿀 수 있습니다.

+1

0.38 빌드에서 'Linux에서 Windows로 실행 가능한 크로스 플랫폼 빌드를 시도하는 --windows-target 옵션이 있습니다. 이것은 "MingGW-cross-env"크로스 컴파일 툴 체인을 사용하고 있습니다. C 런타임의 DLL 지옥 문제로 인해 아직 제대로 작동하지 않습니다. 후속 릴리스에서이 권리를 얻으려고합니다. "곧이 문제가 해결되기를 희망합니다. –