Tôi đang sử dụng Debian Linux.
Tôi đã tự hỏi nếu có một cách để cấu hình để chạy tất cả các tập lệnh Python trong thiết bị đầu cuối bằng cách gõ script.py
(thay vì python script.py
).
Tôi đang sử dụng Debian Linux.
Tôi đã tự hỏi nếu có một cách để cấu hình để chạy tất cả các tập lệnh Python trong thiết bị đầu cuối bằng cách gõ script.py
(thay vì python script.py
).
Câu trả lời:
Có hai điều bạn cần làm:
chmod +x script.py
Sử dụng một shebang để cho kernel biết trình thông dịch nào sẽ sử dụng. Dòng trên cùng của tập lệnh nên đọc:
#!/usr/bin/python
Điều này giả định rằng tập lệnh của bạn sẽ chạy với python mặc định. Nếu bạn cần một phiên bản cụ thể, chỉ cần xác định trong shebang:
#!/usr/bin/python2.7
Bây giờ bạn có thể gõ:
./script.py
nếu tập lệnh nằm trong thư mục hiện tại của bạn, hoặc:
script.py
nếu vị trí của tập lệnh xảy ra trong PATH của bạn, hoặc:
path/to/script.py
nếu không thì.
bash
là đọc tệp khi thực thi ...
./script.py
, không phảiscript.py
Trong linux, bạn chỉ cần sử dụng hashbang (còn gọi là shebang). Thêm dòng
#!/usr/bin/python
nếu bạn muốn thực thi trình thông dịch python mặc định.
#!/path/to/python[x.x]
để sử dụng một số phiên bản cụ thể, hoặc
#!/usr/bin/env python
Nếu bạn muốn môi trường tìm python cho bạn.
Bạn cũng sẽ được yêu cầu thực hiện kịch bản
chmod +x script[.py]
Sử dụng:
#!/usr/bin/env python
Điều này sẽ đảm bảo rằng con trăn mà người dùng mong đợi được sử dụng sẽ là con chạy kịch bản. Điều này đặc biệt quan trọng nếu người dùng đang sử dụng virtualenv để có một phiên bản cụ thể của python trong một môi trường nhất định.
Sử dụng một dòng shebang ở đầu tập lệnh của bạn như dưới đây:
Cập nhật phiên bản python phù hợp mà bạn muốn thực thi tập lệnh. ví dụ: đối với python 3.6, nó
cho thông dịch viên mặc định
Lưu ý: Đảm bảo tập lệnh có quyền thực thi.
#!/usr/bin/env python
, trong trường hợp người dùng có một bản dựng python cục bộ (ví dụ: trong/usr/local/bin
) mà họ muốn chạy tập lệnh với.