2010-11-11 48 views
21

Vì vậy, tôi có một kịch bản Python:Tôi có thể bằng cách nào đó "biên dịch" một tập lệnh python để làm việc trên PC mà không cần cài đặt Python không?

myscript.py 

Tôi thực hiện nó như thế này:

python D:\myscript.py 

Tuy nhiên, tôi phải có Python cài đặt và đưa vào biến PATH môi trường cho rằng để làm việc.

Bằng cách nào đó có thể "bó" Python thực thi với một tập lệnh Python để người khác có thể chạy nó trên máy tính của họ mà không cần Python?

Sẽ ổn nếu nó chỉ hoạt động trong Windows.

EDIT:

Sau khi thử các compile.py tôi nhận được lỗi này:

Traceback (most recent call last): 
    File "D:\stuff\compile.py", line 4, in <module> 
    import py2exe 
ImportError: No module named py2exe 
+0

Để giải quyết lỗi nhập bạn cần để có phiên bản đúng của 'py2exe' (32 hoặc 64 bit tùy thuộc vào thiết lập python của bạn), hãy cài đặt và kiểm tra thư mục nơi cài đặt được bao gồm trong' sys.path ' – Unode

Trả lời

17

Dưới đây là một cách để thực hiện điều đó (đối với Windows, sử dụng py2exe).

Trước tiên, hãy cài đặt py2exe trên hộp Windows của bạn.

Sau đó tạo một kịch bản python tên compile.py, như thế này:

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) 

Để biên soạn kịch bản Python của bạn thành một Windows thực thi, chạy kịch bản này với chương trình của bạn như là đối số của nó:

$ python compile.py myscript.py 

Nó sẽ tạo ra một tệp thực thi nhị phân (EXE) với một trình thông dịch Python được biên dịch bên trong. Sau đó bạn có thể phân phối tệp thi hành này.

+0

Cảm ơn. Tôi nhận được một lỗi mặc dù. Kiểm tra câu trả lời cập nhật của tôi. –

+0

bạn đã cài đặt py2exe chưa? –

+0

Có. Tôi đã tải xuống và cài đặt py2exe-0.6.9.win64-py2.5.amd64 từ Sourceforge. –

10

Bạn muốn một cái gì đó giống như py2exe.

5

Here là danh sách của chúng.

11

PyInstaller đã làm việc tốt cho tôi, tạo ra các gói nhỏ hợp lý do sử dụng upx. Phát hiện phụ thuộc của nó tốt hơn py2exe tại thời điểm đó. Có vẻ như không có nhiều phát triển gần đây và có lẽ không hoạt động với 3.x, tuy nhiên.

Nguồn trong kho lưu trữ là điểm khởi đầu tốt hơn so với gói 1.4.

Ngoài ra, hãy xem trang wiki về cách làm việc với Python 2.6+.

Từ danh sách các tính năng:

  • Bao bì các chương trình Python vào thực thi tiêu chuẩn, rằng công việc trên máy tính mà không cần Python cài đặt.
  • Đa nền tảng: hoạt động trong Windows (32 bit và 64 bit), Linux (32 bit và 64 bit) và Mac OS X (chỉ 32 bit cho đến bây giờ, xem MacOsCompatibility).
  • Đa dạng: hoạt động dưới mọi phiên bản của Python từ 1,5 đến 2,7. LƯU Ý: Nếu bạn đang sử dụng Python 2.6+ trên Windows, hãy xem Python26Win.
  • Chế độ đóng gói linh hoạt:
  • Thư mục đơn lẻ: tạo thư mục chứa tệp thi hành cộng với tất cả các mô-đun nhị phân bên ngoài (.dll, .pyd, .so) được chương trình sử dụng.
  • Tệp đơn: xây dựng một tệp thực thi duy nhất, hoàn toàn độc lập, chạy mà không có bất kỳ sự phụ thuộc bên ngoài nào.
  • Tùy chỉnh: bạn có thể tự động hóa PyInstaller để thực hiện bất kỳ chế độ đóng gói nào bạn muốn thông qua một tệp tập lệnh đơn giản bằng Python.
  • Hỗ trợ thông minh rõ ràng cho nhiều gói thứ ba (để nhập ẩn, tệp dữ liệu ngoài, v.v.), để làm cho chúng hoạt động với PyInstaller out-of-the-box (xem phần Hỗ trợ).
  • Hỗ trợ đầy đủ tệp EGG: các tệp .egg được yêu cầu tự động được kiểm tra cho các gói phụ thuộc và gói, và tất cả các tính năng dành riêng cho trứng cũng được hỗ trợ trong thời gian chạy (các điểm nhập, v.v.).
  • Thư mục một phần Hỗ trợ EGG: các thư mục yêu cầu .gg được tự động kiểm tra cho các gói phụ thuộc và gói, nhưng các tính năng dành riêng cho trứng sẽ không hoạt động khi chạy.
  • Hỗ trợ tự động cho các thư viện nhị phân được sử dụng thông qua ctypes (xem CtypesDependencyHỗ trợ để biết chi tiết).
  • Hỗ trợ đóng gói nhị phân tự động thông qua máy nén UPX nổi tiếng.
  • Chế độ bảng điều khiển tùy chọn (xem đầu ra tiêu chuẩn và lỗi chuẩn khi chạy).
  • Tính năng dành riêng cho Windows:
  • Hỗ trợ thực thi ký mã.
  • Hỗ trợ hoàn toàn tự động cho CRT: không cần phải phân phối MSVCR * .DLL theo cách thủ công, trình cài đặt redist, tệp kê khai hoặc bất kỳ thứ gì khác; các ứng dụng một tệp thực sự hoạt động ở mọi nơi!
  • Biểu tượng có thể thực thi có thể chọn.
  • Phần và tệp kê khai phiên bản có thể định cấu hình hoàn toàn có thể thực thi được.
  • Hỗ trợ tạo máy chủ COM.
  • tính năng Mac-cụ thể:
  • hỗ trợ Preliminar cho bó (xem MacOsCompatibility)
+0

Tôi đã tìm thấy PyInstaller phù hợp hơn với các phiên bản mới nhất của Python và tập lệnh với PyQt GUI và nhiều thư viện khác. Chỉ cần đảm bảo lấy mã mới nhất từ ​​SVN (các nhà phát triển của nó không được cập nhật chính thức) –

0

Đến Notepad ++ Menu, Plugins -> Python Script -> Show Console. Trong cửa sổ bảng điều khiển mới mở, ở dưới cùng loại ..... execfile ('C: /path/to/your/python/file/code.py') # Sử dụng dấu gạch chéo (/) thay vì gạch chéo ngược. Lượt trả lại hoặc nhấp vào nút chạy.

+0

Câu hỏi nổi bật "biên dịch" trong câu hỏi vì một lý do rất tốt. Chạy một công cụ với một phụ thuộc python được tính là "python đã cài đặt". Đó không phải là câu hỏi đang hỏi. –

Các vấn đề liên quan