2008-11-20 38 views
59

Tôi vừa cài đặt hệ thống linux (Kubuntu) và đã tự hỏi liệu có chương trình nào thực hiện các chương trình python có thể chạy được trên Linux hay không.Tôi sử dụng gì trên Linux để thực hiện chương trình python thực thi

+0

Dupe của http://stackoverflow.com/questions/193077/standalone-python-applications-in-linux –

+0

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 sự sẵn có của thư viện và các vấn đề tương thích. – tzot

+0

Đã được trả lời tại đây [http://stackoverflow.com/questions/193077/...](http://stackoverflow.com/questions/193077/standalone-python-applications-in-linux) –

Trả lời

106

Chỉ cần đặt này trong dòng đầu tiên của kịch bản của bạn:

#!/usr/bin/env python 

Tận dụng tập tin thực thi với

chmod +x myfile.py 

Execute với

./myfile.py 
+4

Tôi đang bối rối. Làm thế nào để "#!/Usr/bin/env python" làm việc khi băm được cho là để làm cho nó một dòng nhận xét? Tôi đã thử chạy kịch bản 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 là cần thiết, nhưng làm thế nào nó hoạt động nếu đó là một bình luận? – Nav

+11

OK, đã hiểu. Đó là một dòng shebang: http://en.wikipedia.org/wiki/Shebang_(Unix) – Nav

+1

Nếu bạn đang gửi kịch bản cho một lập trình viên đồng nghiệp, đ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. Nếu người dùng không cài đặt Python thì sao? Nếu họ làm gì, nhưng đó là một phiên bản khác với bạn đã viết chương trình? Nói chung điều này sẽ chỉ làm việc cho một tỷ lệ nhỏ người dùng, đặc biệt là trên Windows. –

4

Đưa những dòng này ở khởi điểm mã sẽ cho các hệ điều hành của bạn tra cứu chương trình nhị phân cần thiết để thực hiện trên kịch bản 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. Khi tôi có Ubuntu như hệ điều hành, nó giữ trình thông dịch python trong /usr/bin/python vì vậy tôi phải viết dòng này vào lúc bắt đầu tập lệnh python của tôi;

#!/usr/bin/python 

Sau khi hoàn thành và tiết kiệm mã của bạn

  1. Bắt đầu terminal lệnh của bạn

  2. Hãy chắc chắn rằng kịch bản nằm trong thư mục làm việc hiện tại của bạn

  3. Loại 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 terminal, gõ ./script_name.py

11

Nếu bạn muốn để có được một ứng dụng nhị phân độc lập bằng Python cố gắng sử dụng một công cụ như py2exe hoặc PyInstaller.

+0

từ khóa: standalone –

+0

Tôi có thể dịch ngược PyInstaller không đầu ra? – SuB

5

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

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

Python 3 có quyền lựa chọn tự nhiên của tạo xây dựng quận cũng:

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

+0

câu hỏi không phải là về việc làm cho các tập tin python exe/elf file – warvariuc

+3

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 thực thi cho Linux." –

0

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

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

Viết printhello sẽ chạy hello_world.py, nhưng điều này chỉ là tạm thời. Để làm 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 này trong terminal:

gedit ~/.bashrc 
-1

Trên đỉnh mã đầu tiên ghi của bạn:

#usr/bin/python hoặc #usr/bin/env python Sau đó, tạo ra một tập tin mới .sh gọi setup.sh và viết:

sudo apt-get install python python-pip 
sudo chmod +x yourfile.py 
sudo -H pip install librariesyouwant 

Do đó loại bỏ các vấn đề không có python và cài đặt bất kỳ gói mất tích S. Để thực hiện một shortcut trên desktop làm điều này:

sudo cp yourfile.py ~/Desktop/ 
sudo chmod +x ~/Desktop/yourfile.py 

Xin vui lòng, lưu ý rằng nếu mã của bạn không được thực hiện để tạo ra một giao diện, bạn sẽ phải chạy mã của bạn từ thiết bị đầu cuối với ./yourfile.py

+0

Công cụ Apt và Pip là tiếp tuyến nhưng hữu ích nếu kịch bản của bạn có các phụ thuộc bên ngoài và bạn muốn phân phối nó cho người khác, nhưng không trực tiếp thích hợp ở đây. 'Chmod' chắc chắn không cần phải chạy với' sudo' trừ khi bạn đã quản lý bằng cách nào đó để cài đặt nó trong một thư mục mà ở đó bạn thường không có quyền ghi; ditto trong spades cho 'cp'. Điều này có thể phù hợp như một câu trả lời cho câu hỏi liên quan http://stackoverflow.com/questions/193077/standalone-python-applications-in-linux. – tripleee

0

Nếu ai muốn làm thực thi hello.py

đầu tiên tìm ra con đường nơi python là trong os của bạn với: which python

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

tại dòng đầu tiên của hello.py ta nên thêm: #!/usr/bin/python

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

ta nên chỉ làm cho nó thực thi như: chmode +x hello.py

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