Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
456 views
in Technique[技术] by (71.8m points)

compilation - Can I somehow "compile" a python script to work on PC without Python installed?

So I have a Python script:

myscript.py

I am executing it like this:

python D:myscript.py

However, I must have Python installed and included in the PATH environment variable for that to work.

Is it somehow possible to "bundle" Python executable with a Python script so other people will be able to run it on their PCs without Python?

It is ok if it will work only in Windows.

EDIT:

After trying the compile.py I get this error:

Traceback (most recent call last):
  File "D:stuffcompile.py", line 4, in <module>
    import py2exe
ImportError: No module named py2exe
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Here is one way to do it (for Windows, using py2exe).

First, install the py2exe on your Windows box.

Then create a python script named compile.py, like this:

import sys
from distutils.core import setup
import py2exe

entry_point = sys.argv[1]
sys.argv.pop()
sys.argv.append('py2exe')
sys.argv.append('-q')

opts = {
    'py2exe': {
        'compressed': 1,
        'optimize': 2,
        'bundle_files': 1
    }
}

setup(console=[entry_point], options=opts, zipfile=None)

To compile your Python script into a Windows executable, run this script with your program as its argument:

$ python compile.py myscript.py

It will spit out a binary executable (EXE) with a Python interpreter compiled inside. You can then just distribute this executable file.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...