2009-12-01 29 views
6

tôi đã sử dụng distutils để cài đặt gói python của tôi, với setup.py này:Làm thế nào để chạy tập lệnh python đã cài đặt?

import distutils.core 

args = { 
    'name' :   'plugh', 
    'version' :   '1.0', 
    'scripts' :   [ "scripts/plugh" ], 
    'packages':   [ "plugh" ], 
} 

d = distutils.core.setup(
    **args 
) 

Trên Linux/mac, nó hoạt động như mong đợi:

% plugh 
hello world 
% 

Trên cửa sổ, kịch bản "plugh" làm không chạy:

C:\Python25\Scripts>plugh 
'plugh' is not recognized as an internal or external command, 
operable program or batch file. 

C:\Python25\Scripts> 

tôi thấy báo cáo lỗi tại http://bugs.python.org/issue7231 rằng thư mục \ Scripts không được thêm vào PATH khi bạn cài đặt python, vì vậy tôi đã áp dụng workaround d được ghi trong vé đó (tức là thêm C: \ Python25 \ Scripts to PATH)

C:\Python25\Scripts>path 
PATH=c:\Python25\Scripts;C:\Program Files\Legato\nsr\bin;C:\WINDOWS\system32;C:\ 
WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;c:\python2 
5;c:\local;C:\WINDOWS\system32\WindowsPowerShell\v1.0 

Đây có phải là thứ không hoạt động trên Windows không? Và nếu vậy, làm thế nào chính xác là bạn có nghĩa vụ phải sử dụng kịch bản python trên một cửa sổ máy?

Tôi cho rằng tôi có thể phát hiện Windows, và thêm một kịch bản thêm vào danh sách, được gọi là "plugh.bat" có chứa một cái gì đó như:

@echo off 
c:\python25\python.exec c:\python25\scripts\plugh %1 %2 %3 %4 %5 %6 %7 %8 %9 

nhưng là thực sự là câu trả lời đúng ở đây? Tôi đã nghĩ rằng với tất cả các tùy chỉnh mà các méo có chứa cho các cửa sổ, sẽ có một câu trả lời tốt hơn thế.

+2

BTW, chuỗi tham số% 1% 2% 3% 4% 5% 6% 7% 8% 9 có thể được thay thế bằng% * nếu bạn chỉ cần chuyển tất cả đầu vào hàng loạt sang kịch bản pyhton (hoặc bất kỳ thực thi khác). – dreikanter

Trả lời

6

cửa sổ sử dụng phần mở rộng của tệp để xác định cách tệp sẽ chạy.

Đặt tên cho tệp của bạn plugh.py và sử dụng plugh.py khi được nhắc gọi.

+0

Trong trường hợp bạn muốn người dùng nhấp vào tệp '.py', bạn có thể kết hợp các tệp' .py' với pythonw.exe thay vì python.exe để thiết bị đầu cuối không mở: http: //docs.python .org/using/windows.html # executing-scripts –

5
  1. Nếu bạn sử dụng ActivePython, nó sẽ đã thêm thư mục C:\PythonXY\Scripts để bạn %PATH% (ActivePython 2,6 bổ sung thêm PEP 370 's %APPDATA%\Python\Scripts-%PATH%) trong khi cài đặt.

  2. Đối với việc triển khai kịch bản trên máy tính Windows, tốt hơn sử dụng Distribute mà sẽ chăm sóc cài đặt giấy gói .exe cho các kịch bản của bạn viện dẫn Python thực tế mà gói của bạn đã được cài đặt (để tránh xung đột với nhiều cài đặt Python - Vì vậy, đặt tên cho kịch bản của bạn để kết thúc .py chỉ là không đủ). Để biết thêm về chủ đề này, hãy đọc về entry points trong tài liệu Phân phối.

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