Tôi sử dụng gì trên linux để thực thi một chương trình python


88

Tôi vừa cài đặt một hệ thống linux (Kubuntu) và đang tự hỏi liệu có chương trình nào để tạo chương trình python có thể thực thi cho linux hay không.




2
Không, nó không được trả lời ở đó. Câu hỏi đó truy vấn về vấn đề phân phối.
tzot

Không, nó không phải là một bản dupe. Câu hỏi đó có liên quan đến việc phân phối phần mềm python tránh các vấn đề về tính khả dụng và tương thích của thư viện.
tzot

Câu trả lời:


157

Chỉ cần đặt điều này vào dòng đầu tiên của tập lệnh của bạn:

#!/usr/bin/env python

Làm cho tệp thực thi được với

chmod +x myfile.py

Thực thi với

./myfile.py

6
Tôi bối rối. "#! / Usr / bin / env python" hoạt động như thế nào khi hàm băm được cho là khiến nó trở thành dòng nhận xét? Tôi đã thử chạy tập lệnh mà không có dòng băm, nhưng nó không hoạt động. Vì vậy, rõ ràng là dòng bắt buộc, nhưng nó hoạt động như thế nào nếu đó là một bình luận?
Nav

5
Nếu bạn đang gửi tập lệnh cho một lập trình viên khác, điều này là tốt. Nhưng đây không phải là cách phù hợp để phân phối các chương trình Python cho người dùng cuối. Điều gì sẽ xảy ra nếu người dùng chưa cài đặt Python? Điều gì sẽ xảy ra nếu họ làm vậy, nhưng đó là một phiên bản khác với phiên bản bạn đã viết chương trình? Nhìn chung, điều này sẽ chỉ hoạt động với một tỷ lệ nhỏ người dùng, đặc biệt là trên Windows.
Jonathan Hartley

5
@MathManiac Nếu bạn tiếp tục như bạn ngụ ý, khoảng 15% người dùng sẽ không thể chạy ứng dụng của bạn. Đây sẽ là một gánh nặng hỗ trợ tê liệt, chưa kể đến trải nghiệm người dùng cực kỳ thù địch, điều này sẽ tạo ra một loạt các bài đăng đáng ghét "ứng dụng X hút". Tôi khẳng định rằng đây không phải là cách phù hợp để phân phối ứng dụng cho người dùng cuối.
Jonathan Hartley

3
@PrahladYeri sử dụng # / usr / bin / env python3
kingledion

4
@Nav Đó được gọi là Shebang . Nó được bình luận vì nó không nên được giải thích bởi python. Nó cung cấp thông tin cho hệ điều hành. Cụ thể hơn, nó cho biết chương trình nào nên được sử dụng để thực thi tập lệnh.
MannyC

16

Nếu bạn muốn tải một ứng dụng nhị phân độc lập bằng Python, hãy thử sử dụng một công cụ như py2exe hoặc PyInstaller .


từ khóa: độc lập
D Adams

Tôi có thể dịch ngược đầu ra của PyInstaller không?
SuB 19/07/17

14

Bạn có thể sử dụng PyInstaller. Nó tạo ra một bản phân phối xây dựng để bạn có thể thực thi nó dưới dạng một tệp "nhị phân".

http://pythonhosted.org/PyInstaller/#using-pyinstaller

Python 3 cũng có tùy chọn gốc để tạo bản phân phối bản dựng:

https://docs.python.org/3/distutils/builtdist.html


câu hỏi không phải là về việc kịch bản python exe / elf file
warvariuc

8
Xin lỗi nhưng có vẻ như câu hỏi chỉ là nó! "đã tự hỏi nếu có một chương trình để làm cho các chương trình python có thể thực thi cho linux."
Leo Pepe

Cảm ơn rất nhiều, @LeoPepe, tôi vừa tạo một người ghi danh cho lớp học của mình, công cụ này lấy đầu vào (tên của các sinh viên có mặt) từ một tệp và cho điểm danh trong một tệp đầu ra, bằng cách chỉ cần nhấp vào một tập lệnh chạy được tạo với sự trợ giúp của pyinstaller.
Genius

4

Đặt những dòng này ở đầu mã sẽ yêu cầu hệ điều hành của bạn tra cứu chương trình nhị phân cần thiết cho việc thực thi tập lệnh python tức là nó là trình thông dịch python.

Vì vậy, nó phụ thuộc vào hệ điều hành của bạn nơi nó giữ trình thông dịch python. Vì tôi có Ubuntu làm hệ điều hành, nó giữ trình thông dịch python trong /usr/bin/pythonđó nên tôi phải viết dòng này khi bắt đầu tập lệnh python của mình;

#!/usr/bin/python

Sau khi hoàn thành và lưu mã của bạn

  1. Khởi động thiết bị đầu cuối lệnh của bạn

  2. Đảm bảo rằng tập lệnh nằm trong thư mục làm việc hiện tại của bạn

  3. Kiểu chmod +x script_name.py

  4. Bây giờ bạn có thể bắt đầu tập lệnh bằng cách nhấp vào tập lệnh. Một hộp cảnh báo sẽ xuất hiện; nhấn "Run" hoặc "Run in Terminal" trong hộp cảnh báo; hoặc, tại dấu nhắc đầu cuối, nhập./script_name.py


4

Nếu ai đó muốn thực thi hello.py

trước tiên, hãy tìm đường dẫn nơi python ở trong hệ điều hành của bạn bằng: which python

nó thường nằm trong thư mục "/ usr / bin / python".

ở dòng đầu tiên của hello.pymột trong những nên thêm:#!/usr/bin/python

sau đó thông qua lệnh linux chmod

người ta chỉ nên làm cho nó có thể thực thi được như: chmod +x hello.py

và thực hiện với ./hello.py


1

Tôi làm như sau:

  1. đặt #! / usr / bin / env python3 ở đầu tập lệnh
  2. chmod u + x file.py
  3. Thay đổi .py thành .command trong tên tệp

Về cơ bản, điều này biến tệp thành tệp thực thi bash. Khi bạn nhấp đúp vào nó, nó sẽ chạy. Điều này hoạt động trong các hệ thống dựa trên Unix.


0

Một cách khác để làm điều đó có thể là tạo một bí danh. Ví dụ trong dòng ghi:

alias printhello='python /home/hello_world.py'

Việc viết printhellosẽ chạy hello_world.py, nhưng điều này chỉ là tạm thời. Để đặt bí danh vĩnh viễn, bạn phải thêm chúng vào bashrc, bạn có thể chỉnh sửa nó bằng cách viết điều này trong terminal:

gedit ~/.bashrc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.