Có thể chạy các tệp trứng Python trực tiếp khi bạn có thể chạy tệp jar bằng Java không?Làm thế nào để chạy các tệp trứng Python trực tiếp mà không cần cài đặt chúng?
Ví dụ, với Java có lẽ bạn dos cái gì đó như:
$ java -jar jar-file
Có thể chạy các tệp trứng Python trực tiếp khi bạn có thể chạy tệp jar bằng Java không?Làm thế nào để chạy các tệp trứng Python trực tiếp mà không cần cài đặt chúng?
Ví dụ, với Java có lẽ bạn dos cái gì đó như:
$ java -jar jar-file
Một python egg là một "single-file định dạng phân phối có thể nhập cảng". Mà thường là một gói python.
Bạn có thể nhập gói trong trứng miễn là bạn biết tên và nó nằm trong đường dẫn của bạn.
Bạn có thể thực hiện gói bằng tùy chọn "-m" và tên gói.
Tuy nhiên, các gói python thường không làm bất cứ điều gì khi thực thi và bạn có thể gặp lỗi. Tùy chọn -c có thể được sử dụng để chạy mã. (Xem http://docs.python.org/using/cmdline.html biết chi tiết về tùy chọn dòng lệnh)
> python -m sphinx
sphinx is a package and cannot be directly executed
> python -c "import <package in an egg>; <function>();"
> python -c "import sphinx; print sphinx.package_dir"
C:\Python26\lib\site-packages\sphinx-0.6.1-py2.6.egg\sphinx
Tính đến Python 2.6, bạn có thể sử dụng python some.egg
và nó sẽ được thực hiện nếu nó bao gồm một module có tên __main__
.
Đối với các phiên bản trước của Python, bạn có thể sử dụng PYTHONPATH=some.egg python -m some module
và somemodule
từ trứng sẽ được chạy làm mô-đun chính. (Lưu ý: nếu bạn đang ở trên Windows, bạn sẽ cần phải làm một riêng biệt SET PYTHONPATH=some.egg
.)
Ví dụ, nếu bạn muốn nhập khẩu các mô-đun bọt trong đó có sẵn dưới dạng file .egg:
egg_path='/home/shahid/suds_2.4.egg'
sys.path.append(egg_path)
import suds
#... rest of code
Câu hỏi đặt ra làm thế nào để chạy biểu mẫu dòng lệnh - đây là cách để chạy từ bên trong một tập lệnh python – Mark
@Mark nơi nó nói như thế? Câu hỏi đặt ra là "Làm thế nào để chạy các tệp trứng Python trực tiếp mà không cần cài đặt chúng?" Câu trả lời này là hợp lệ. – Adham
@Adham - ví dụ Java trong câu hỏi là từ dòng lệnh không có trong Java – Mark