Các kết quả gần như giống nhau khi bạn có một tập lệnh, nhưng khi bạn phát triển một gói mà không có cờ
python /usr/lib/python3.5/pdb.py
27, thì không có cách nào để quá trình nhập hoạt động chính xác nếu bạn muốn chạy một gói phụ hoặc mô-đun trong gói làm gói chính. . ]tài liệu
Giống như nói
hệ thống tìm kiếm. đường dẫn cho mô-đun được đặt tên và thực thi nội dung của nó dưới dạng mô-đun
28python /usr/lib/python3.5/pdb.py
và
Như với tùy chọn -c, thư mục hiện tại sẽ được thêm vào đầu sys. con đường
Vì thế
python -m pdb
gần tương đương với
python /usr/lib/python3.5/pdb.py
[giả sử bạn không có gói hoặc tập lệnh trong thư mục hiện tại có tên là pdb. py]
Giải trình
Hành vi được thực hiện "cố tình giống" kịch bản
Nhiều mô-đun thư viện tiêu chuẩn chứa mã được gọi khi thực thi dưới dạng tập lệnh. Một ví dụ là
Một số mã python được dự định [tôi nghĩ ví dụ này tốt hơn ví dụ về tài liệu tùy chọn dòng lệnh]
$ python -m timeit '"-".join[str[n] for n in range[100]]'
10000 loops, best of 3: 40.3 usec per loop
$ python -m timeit '"-".join[[str[n] for n in range[100]]]'
10000 loops, best of 3: 33.4 usec per loop
$ python -m timeit '"-".join[map[str, range[100]]]'
10000 loops, best of 3: 25.2 usec per loop
Và từ ghi chú phát hành nổi bật cho Python 2. 4
Tùy chọn dòng lệnh -m - python -m modulename sẽ tìm một mô-đun trong thư viện chuẩn và gọi nó. Ví dụ,
29 tương đương vớipython /usr/lib/python3.5/pdb.py
30python /usr/lib/python3.5/pdb.py
Theo dõi câu hỏi
Ngoài ra, David Beazley's Python Essential Reference giải thích nó là "Tùy chọn -m chạy mô-đun thư viện dưới dạng tập lệnh thực thi bên trong mô-đun
28 trước khi thực thi tập lệnh chính"python /usr/lib/python3.5/pdb.py
Điều đó có nghĩa là bất kỳ mô-đun nào bạn có thể tra cứu bằng câu lệnh nhập đều có thể được chạy dưới dạng điểm vào của chương trình - nếu mô-đun đó có một khối mã, thường ở gần cuối, với
python /usr/lib/python3.5/pdb.py
1python /usr/lib/python3.5/pdb.py
27 mà không cần thêm thư mục hiện tại vào đường dẫn
python /usr/lib/python3.5/pdb.py
Một bình luận ở đây ở nơi khác nói
Tùy chọn -m đó cũng thêm thư mục hiện tại vào sys. đường dẫn, rõ ràng là một vấn đề bảo mật [xem. tấn công tải trước]. Hành vi này tương tự như thứ tự tìm kiếm thư viện trong Windows [trước khi nó được tăng cường gần đây]. Thật đáng tiếc khi Python không theo xu hướng và không cung cấp một cách đơn giản để vô hiệu hóa việc thêm. đến hệ thống. con đường
Chà, điều này chứng tỏ sự cố có thể xảy ra - [trong cửa sổ xóa dấu ngoặc kép]
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
Sử dụng cờ
python /usr/lib/python3.5/pdb.py
3 để khóa điều này đối với môi trường sản xuất [mới trong phiên bản 3. 4]python -Im pdb
usage: pdb.py [-c command] .. pyfile [arg] ...
etc...
từ
3python /usr/lib/python3.5/pdb.py
Chạy Python ở chế độ biệt lập. Điều này cũng ngụ ý -E và -s. Ở chế độ cô lập sys. đường dẫn không chứa thư mục của tập lệnh cũng như thư mục gói trang web của người dùng. Tất cả các biến môi trường PYTHON* cũng bị bỏ qua. Các hạn chế khác có thể được áp dụng để ngăn người dùng tiêm mã độc
python /usr/lib/python3.5/pdb.py
5 làm gì?
python /usr/lib/python3.5/pdb.py
Tuy nhiên, nó cho phép nhập tương đối rõ ràng, không đặc biệt phù hợp với câu hỏi này - xem câu trả lời này tại đây.
Một trong những kỹ năng quan trọng nhất bạn cần xây dựng với tư cách là nhà phát triển Python là có thể chạy các tập lệnh và mã Python. Đây sẽ là cách duy nhất để bạn biết liệu mã của bạn có hoạt động như bạn đã lên kế hoạch hay không. Đó thậm chí là cách duy nhất để biết liệu mã của bạn có hoạt động hay không
Hướng dẫn từng bước này sẽ hướng dẫn bạn một loạt cách để chạy tập lệnh Python, tùy thuộc vào môi trường, nền tảng, nhu cầu và kỹ năng của bạn với tư cách là một lập trình viên
Bạn sẽ có cơ hội tìm hiểu cách chạy tập lệnh Python bằng cách sử dụng
- Dòng lệnh hoặc thiết bị đầu cuối của hệ điều hành
- Chế độ tương tác Python
- IDE hoặc trình soạn thảo văn bản mà bạn thích nhất
- Trình quản lý tệp của hệ thống của bạn, bằng cách nhấp đúp vào biểu tượng tập lệnh của bạn
Bằng cách này, bạn sẽ có được kiến thức và kỹ năng cần thiết để làm cho chu kỳ phát triển của mình hiệu quả và linh hoạt hơn
Tải xuống miễn phí. Nhận một chương mẫu từ Thủ thuật Python. Cuốn sách chỉ cho bạn các phương pháp hay nhất về Python với các ví dụ đơn giản mà bạn có thể áp dụng ngay lập tức để viết mã Pythonic + đẹp hơn
Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Cách chạy tập lệnh Python của bạn”. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian
Lấy bài kiểm tra "
Tập lệnh vs Mô-đun
Trong tin học, từ script được dùng để chỉ tệp chứa chuỗi lệnh logic hoặc tệp xử lý hàng loạt. Đây thường là một chương trình đơn giản, được lưu trữ trong một tệp văn bản thuần túy
Các tập lệnh luôn được xử lý bởi một số loại trình thông dịch, chịu trách nhiệm thực hiện tuần tự từng lệnh
Một tệp văn bản thuần túy chứa mã Python được người dùng thực thi trực tiếp thường được gọi là tập lệnh, đây là một thuật ngữ không chính thức có nghĩa là tệp chương trình cấp cao nhất
Mặt khác, một tệp văn bản thuần túy, chứa mã Python được thiết kế để nhập và sử dụng từ một tệp Python khác, được gọi là mô-đun
Vì vậy, sự khác biệt chính giữa mô-đun và tập lệnh là mô-đun được dùng để nhập, trong khi tập lệnh được tạo để thực thi trực tiếp
Trong cả hai trường hợp, điều quan trọng là biết cách chạy mã Python mà bạn viết vào các mô-đun và tập lệnh của mình
Loại bỏ các quảng cáoTrình thông dịch Python là gì?
Python là một ngôn ngữ lập trình tuyệt vời cho phép bạn làm việc hiệu quả trong nhiều lĩnh vực khác nhau
Python cũng là một phần mềm được gọi là trình thông dịch. Trình thông dịch là chương trình bạn sẽ cần để chạy mã và tập lệnh Python. Về mặt kỹ thuật, trình thông dịch là một lớp phần mềm hoạt động giữa chương trình và phần cứng máy tính của bạn để chạy mã của bạn
Tùy thuộc vào việc triển khai Python mà bạn sử dụng, trình thông dịch có thể
- Một chương trình được viết bằng C, như CPython, là phần triển khai cốt lõi của ngôn ngữ
- Một chương trình viết bằng Java, như Jython
- Một chương trình được viết bằng chính Python, như PyPy
- Một chương trình được thực hiện trong. NET, như IronPython
Dù trình thông dịch ở dạng nào, mã bạn viết sẽ luôn được chạy bởi chương trình này. Do đó, điều kiện đầu tiên để có thể chạy các tập lệnh Python là phải cài đặt đúng trình thông dịch trên hệ thống của bạn
Trình thông dịch có thể chạy mã Python theo hai cách khác nhau
- Là một tập lệnh hoặc mô-đun
- Là một đoạn mã được nhập vào phiên tương tác
Cách chạy mã Python tương tác
Một cách được sử dụng rộng rãi để chạy mã Python là thông qua một phiên tương tác. Để bắt đầu phiên tương tác Python, chỉ cần mở một dòng lệnh hoặc thiết bị đầu cuối, sau đó nhập
1#!/usr/bin/env python3
2
3print['Hello World!']
0 hoặc 1#!/usr/bin/env python3
2
3print['Hello World!']
1 tùy thuộc vào cài đặt Python của bạn, sau đó nhấn Enter.Đây là một ví dụ về cách thực hiện việc này trên Linux
python /usr/lib/python3.5/pdb.py
1Lời nhắc tiêu chuẩn cho chế độ tương tác là
1#!/usr/bin/env python3
2
3print['Hello World!']
2, vì vậy ngay khi nhìn thấy các ký tự này, bạn sẽ biết mình đang ở trongBây giờ, bạn có thể viết và chạy mã Python tùy ý, chỉ có nhược điểm duy nhất là khi bạn đóng phiên, mã của bạn sẽ biến mất
Khi bạn làm việc tương tác, mọi biểu thức và câu lệnh bạn nhập vào sẽ được đánh giá và thực thi ngay lập tức
>>>
python /usr/lib/python3.5/pdb.py
3Một phiên tương tác sẽ cho phép bạn kiểm tra mọi đoạn mã bạn viết, điều này làm cho nó trở thành một công cụ phát triển tuyệt vời và là nơi tuyệt vời để thử nghiệm ngôn ngữ và kiểm tra mã Python một cách nhanh chóng
Để thoát khỏi chế độ tương tác, bạn có thể sử dụng một trong các tùy chọn sau
3 hoặc1#!/usr/bin/env python3 2 3print['Hello World!']
4, là các chức năng tích hợp sẵn1#!/usr/bin/env python3 2 3print['Hello World!']
- Ctrl Ctrl + Z và Enter key combination on Windows, or just Ctrl+D on Unix-like systems
Ghi chú. Nguyên tắc ngón tay cái đầu tiên cần nhớ khi sử dụng Python là nếu bạn nghi ngờ về tác dụng của một đoạn mã Python, thì hãy khởi chạy một phiên tương tác và dùng thử để xem điều gì sẽ xảy ra
Nếu bạn chưa bao giờ làm việc với dòng lệnh hoặc thiết bị đầu cuối, thì bạn có thể thử điều này
Trên Windows, dòng lệnh thường được gọi là dấu nhắc lệnh hoặc bảng điều khiển MS-DOS và đó là một chương trình có tên là
5. Đường dẫn đến chương trình này có thể thay đổi đáng kể từ phiên bản hệ thống này sang phiên bản hệ thống khác1#!/usr/bin/env python3 2 3print['Hello World!']
Một cách nhanh chóng để truy cập nó là nhấn nút Win + R key combination, which will take you to the Run dialog. Once you’re there, type in
6 and press Enter .1#!/usr/bin/env python3 2 3print['Hello World!']
Trên GNU/Linux [và các Unix khác], có một số ứng dụng cho phép bạn truy cập dòng lệnh hệ thống. Một số phổ biến nhất là xterm, Gnome Terminal và Konsole. Đây là những công cụ chạy shell hoặc terminal như Bash, ksh, csh, v.v.
Trong trường hợp này, đường dẫn đến các ứng dụng này đa dạng hơn nhiều và phụ thuộc vào bản phân phối và thậm chí trên môi trường máy tính để bàn mà bạn sử dụng. Vì vậy, bạn sẽ cần đọc tài liệu hệ thống của mình
Trên Mac OS X, bạn có thể truy cập thiết bị đầu cuối hệ thống từ Ứng dụng → Tiện ích → Thiết bị đầu cuối
Trình thông dịch chạy tập lệnh Python như thế nào?
Khi bạn cố gắng chạy tập lệnh Python, quy trình gồm nhiều bước sẽ bắt đầu. Trong quá trình này, phiên dịch viên sẽ
Xử lý các câu lệnh trong tập lệnh của bạn theo kiểu tuần tự
Biên dịch mã nguồn thành định dạng trung gian được gọi là mã byte
Mã byte này là bản dịch mã sang ngôn ngữ cấp thấp hơn, độc lập với nền tảng. Mục đích của nó là để tối ưu hóa việc thực thi mã. Vì vậy, lần sau khi trình thông dịch chạy mã của bạn, nó sẽ bỏ qua bước biên dịch này
Nói một cách chính xác, việc tối ưu hóa mã này chỉ dành cho các mô-đun [tệp đã nhập], không dành cho các tập lệnh thực thi
Gửi mã để thực thi
Tại thời điểm này, một thứ được gọi là Máy ảo Python [PVM] bắt đầu hoạt động. PVM là công cụ thời gian chạy của Python. Đó là một chu kỳ lặp lại các hướng dẫn của mã byte của bạn để chạy từng cái một
PVM không phải là một thành phần biệt lập của Python. Nó chỉ là một phần của hệ thống Python mà bạn đã cài đặt trên máy của mình. Về mặt kỹ thuật, PVM là bước cuối cùng của cái được gọi là trình thông dịch Python
Toàn bộ quá trình để chạy các tập lệnh Python được gọi là Mô hình thực thi Python
Ghi chú. Mô tả này của Mô hình thực thi Python tương ứng với việc triển khai cốt lõi của ngôn ngữ, đó là CPython. Vì đây không phải là yêu cầu về ngôn ngữ nên nó có thể bị thay đổi trong tương lai
Cách chạy tập lệnh Python bằng dòng lệnh
Phiên tương tác Python sẽ cho phép bạn viết rất nhiều dòng mã, nhưng khi bạn đóng phiên, bạn sẽ mất mọi thứ bạn đã viết. Đó là lý do tại sao cách thông thường để viết chương trình Python là sử dụng các tệp văn bản thuần túy. Theo quy ước, những tệp đó sẽ sử dụng phần mở rộng
1#!/usr/bin/env python3
2
3print['Hello World!']
7. [Trên các hệ thống Windows, phần mở rộng cũng có thể là 1#!/usr/bin/env python3
2
3print['Hello World!']
8. ]Các tệp mã Python có thể được tạo bằng bất kỳ trình soạn thảo văn bản thuần túy nào. Nếu bạn chưa quen với lập trình Python, bạn có thể dùng thử Sublime Text, đây là một trình soạn thảo mạnh mẽ và dễ sử dụng, nhưng bạn có thể sử dụng bất kỳ trình soạn thảo nào bạn thích
Để tiếp tục tiến về phía trước trong hướng dẫn này, bạn sẽ cần tạo một tập lệnh thử nghiệm. Mở trình soạn thảo văn bản yêu thích của bạn và viết đoạn mã sau
1#!/usr/bin/env python3
2
3print['Hello World!']
Lưu tệp trong thư mục làm việc của bạn với tên
1#!/usr/bin/env python3
2
3print['Hello World!']
9. Với kịch bản thử nghiệm đã sẵn sàng, bạn có thể tiếp tục đọcSử dụng lệnh 1#!/usr/bin/env python3
2
3print['Hello World!']
0
1#!/usr/bin/env python3
2
3print['Hello World!']
Để chạy tập lệnh Python bằng lệnh
1#!/usr/bin/env python3
2
3print['Hello World!']
0, bạn cần mở một dòng lệnh và nhập từ 1#!/usr/bin/env python3
2
3print['Hello World!']
0 hoặc 1#!/usr/bin/env python3
2
3print['Hello World!']
1 nếu bạn có cả hai phiên bản, theo sau là đường dẫn đến tập lệnh của bạn, giống như sau$ python -m timeit '"-".join[str[n] for n in range[100]]'
10000 loops, best of 3: 40.3 usec per loop
$ python -m timeit '"-".join[[str[n] for n in range[100]]]'
10000 loops, best of 3: 33.4 usec per loop
$ python -m timeit '"-".join[map[str, range[100]]]'
10000 loops, best of 3: 25.2 usec per loop
6Nếu mọi thứ đều ổn, sau khi nhấn Enter , bạn sẽ thấy cụm từ
$ python -m timeit '"-".join[str[n] for n in range[100]]'
10000 loops, best of 3: 40.3 usec per loop
$ python -m timeit '"-".join[[str[n] for n in range[100]]]'
10000 loops, best of 3: 33.4 usec per loop
$ python -m timeit '"-".join[map[str, range[100]]]'
10000 loops, best of 3: 25.2 usec per loop
64 trên màn hình của mình. Đó là nó. Bạn vừa chạy tập lệnh Python đầu tiên của mình. Nếu cách này không hoạt động bình thường, có thể bạn cần kiểm tra lại hệ thống của mình
$ python -m timeit '"-".join[str[n] for n in range[100]]'
10000 loops, best of 3: 40.3 usec per loop
$ python -m timeit '"-".join[[str[n] for n in range[100]]]'
10000 loops, best of 3: 33.4 usec per loop
$ python -m timeit '"-".join[map[str, range[100]]]'
10000 loops, best of 3: 25.2 usec per loop
65, cài đặt Python của bạn, cách bạn tạo tập lệnh 1#!/usr/bin/env python3
2
3print['Hello World!']
9, nơi bạn đã lưu tập lệnh, v.v.Đây là cách cơ bản và thiết thực nhất để chạy các tập lệnh Python
Chuyển hướng đầu ra
Đôi khi, thật hữu ích khi lưu đầu ra của tập lệnh để phân tích sau. Đây là cách bạn có thể làm điều đó
python /usr/lib/python3.5/pdb.py
0Thao tác này chuyển hướng đầu ra của tập lệnh của bạn sang
$ python -m timeit '"-".join[str[n] for n in range[100]]'
10000 loops, best of 3: 40.3 usec per loop
$ python -m timeit '"-".join[[str[n] for n in range[100]]]'
10000 loops, best of 3: 33.4 usec per loop
$ python -m timeit '"-".join[map[str, range[100]]]'
10000 loops, best of 3: 25.2 usec per loop
67, thay vì đầu ra hệ thống tiêu chuẩn [$ python -m timeit '"-".join[str[n] for n in range[100]]'
10000 loops, best of 3: 40.3 usec per loop
$ python -m timeit '"-".join[[str[n] for n in range[100]]]'
10000 loops, best of 3: 33.4 usec per loop
$ python -m timeit '"-".join[map[str, range[100]]]'
10000 loops, best of 3: 25.2 usec per loop
68]. Quá trình này thường được gọi là chuyển hướng luồng và có sẵn trên cả hệ thống giống như Windows và UnixNếu
$ python -m timeit '"-".join[str[n] for n in range[100]]'
10000 loops, best of 3: 40.3 usec per loop
$ python -m timeit '"-".join[[str[n] for n in range[100]]]'
10000 loops, best of 3: 33.4 usec per loop
$ python -m timeit '"-".join[map[str, range[100]]]'
10000 loops, best of 3: 25.2 usec per loop
67 không tồn tại thì nó sẽ tự động được tạo. Mặt khác, nếu tệp đã tồn tại thì nội dung của nó sẽ được thay thế bằng đầu ra mớiCuối cùng, nếu bạn muốn thêm đầu ra của các lần thực hiện liên tiếp vào cuối
$ python -m timeit '"-".join[str[n] for n in range[100]]'
10000 loops, best of 3: 40.3 usec per loop
$ python -m timeit '"-".join[[str[n] for n in range[100]]]'
10000 loops, best of 3: 33.4 usec per loop
$ python -m timeit '"-".join[map[str, range[100]]]'
10000 loops, best of 3: 25.2 usec per loop
67, thì bạn phải sử dụng hai dấu ngoặc nhọn [python /usr/lib/python3.5/pdb.py
01] thay vì một, giống như thế nàypython /usr/lib/python3.5/pdb.py
6Bây giờ, đầu ra sẽ được thêm vào cuối của
$ python -m timeit '"-".join[str[n] for n in range[100]]'
10000 loops, best of 3: 40.3 usec per loop
$ python -m timeit '"-".join[[str[n] for n in range[100]]]'
10000 loops, best of 3: 33.4 usec per loop
$ python -m timeit '"-".join[map[str, range[100]]]'
10000 loops, best of 3: 25.2 usec per loop
67Loại bỏ các quảng cáoChạy các mô-đun với tùy chọn python /usr/lib/python3.5/pdb.py
03
python /usr/lib/python3.5/pdb.py
Python cung cấp một loạt tùy chọn dòng lệnh mà bạn có thể sử dụng tùy theo nhu cầu của mình. Ví dụ: nếu bạn muốn chạy mô-đun Python, bạn có thể sử dụng lệnh
python /usr/lib/python3.5/pdb.py
04Tùy chọn
python /usr/lib/python3.5/pdb.py
03 tìm kiếm tên mô-đun python /usr/lib/python3.5/pdb.py
06 và chạy nội dung của nó dưới dạng python /usr/lib/python3.5/pdb.py
07echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
3Ghi chú.
python /usr/lib/python3.5/pdb.py
08 cần phải là tên của một đối tượng mô-đun, không phải là một chuỗiSử dụng tên tệp tập lệnh
Trên các phiên bản Windows gần đây, có thể chạy các tập lệnh Python bằng cách nhập tên của tệp chứa mã tại dấu nhắc lệnh
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
5Điều này có thể xảy ra vì Windows sử dụng sổ đăng ký hệ thống và liên kết tệp để xác định chương trình nào sẽ sử dụng để chạy một tệp cụ thể
Trên các hệ thống tương tự Unix, chẳng hạn như GNU/Linux, bạn có thể đạt được điều gì đó tương tự. Bạn sẽ chỉ phải thêm một dòng đầu tiên với văn bản
python /usr/lib/python3.5/pdb.py
09, giống như bạn đã làm với 1#!/usr/bin/env python3
2
3print['Hello World!']
9Đối với Python, đây là một nhận xét đơn giản, nhưng đối với hệ điều hành, dòng này cho biết chương trình nào phải được sử dụng để chạy tệp
Dòng này bắt đầu bằng tổ hợp ký tự
python /usr/lib/python3.5/pdb.py
61, thường được gọi là hash bang hoặc shebang, và tiếp tục với đường dẫn đến trình thông dịchCó hai cách để chỉ định đường dẫn đến trình thông dịch
62. viết đường dẫn tuyệt đốipython /usr/lib/python3.5/pdb.py
09. sử dụng lệnhpython /usr/lib/python3.5/pdb.py
64 của hệ điều hành, định vị và thực thi Python bằng cách tìm kiếm biến môi trườngpython /usr/lib/python3.5/pdb.py
65$ python -m timeit '"-".join[str[n] for n in range[100]]' 10000 loops, best of 3: 40.3 usec per loop $ python -m timeit '"-".join[[str[n] for n in range[100]]]' 10000 loops, best of 3: 33.4 usec per loop $ python -m timeit '"-".join[map[str, range[100]]]' 10000 loops, best of 3: 25.2 usec per loop
Tùy chọn cuối cùng này hữu ích nếu bạn lưu ý rằng không phải tất cả các hệ thống giống Unix đều định vị trình thông dịch ở cùng một nơi
Cuối cùng, để thực thi một tập lệnh như thế này, bạn cần gán quyền thực thi cho nó rồi nhập tên tệp tại dòng lệnh
Đây là một ví dụ về cách làm điều này
python /usr/lib/python3.5/pdb.py
3Với quyền thực thi và dòng shebang được định cấu hình đúng cách, bạn có thể chạy tập lệnh bằng cách chỉ cần nhập tên tệp của tập lệnh tại dòng lệnh
Cuối cùng, bạn cần lưu ý rằng nếu tập lệnh của bạn không nằm trong thư mục làm việc hiện tại của bạn, bạn sẽ phải sử dụng đường dẫn tệp để phương thức này hoạt động chính xác
Loại bỏ các quảng cáoCách chạy tập lệnh Python một cách tương tác
Cũng có thể chạy các tập lệnh và mô-đun Python từ một phiên tương tác. Tùy chọn này cung cấp cho bạn nhiều khả năng
Tận dụng lợi thế của python /usr/lib/python3.5/pdb.py
66
python /usr/lib/python3.5/pdb.py
Khi bạn nhập một mô-đun, điều thực sự xảy ra là bạn tải nội dung của nó để truy cập và sử dụng sau này. Điều thú vị về quy trình này là
python /usr/lib/python3.5/pdb.py
66 chạy mã ở bước cuối cùngKhi mô-đun chỉ chứa các định nghĩa về lớp, hàm, biến và hằng, bạn có thể sẽ không biết rằng mã thực sự được chạy, nhưng khi mô-đun bao gồm các lệnh gọi hàm, phương thức hoặc các câu lệnh khác tạo ra kết quả hiển thị, thì bạn
Điều này cung cấp cho bạn một tùy chọn khác để chạy các tập lệnh Python
>>>
python /usr/lib/python3.5/pdb.py
6Bạn sẽ phải lưu ý rằng tùy chọn này chỉ hoạt động một lần mỗi phiên. Sau
python /usr/lib/python3.5/pdb.py
66 đầu tiên, các lần thực thi python /usr/lib/python3.5/pdb.py
66 liên tiếp không làm gì cả, ngay cả khi bạn sửa đổi nội dung của mô-đun. Điều này là do các hoạt động của python /usr/lib/python3.5/pdb.py
66 rất tốn kém và do đó chỉ chạy một lần. Đây là một ví dụ>>>
python /usr/lib/python3.5/pdb.py
30Hai thao tác
python /usr/lib/python3.5/pdb.py
66 này không làm gì cả, vì Python biết rằng echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
32 đã được nhậpCó một số yêu cầu để phương pháp này hoạt động
- Tệp có mã Python phải được đặt trong thư mục làm việc hiện tại của bạn
- Tệp phải ở trong thư mục , nơi Python tìm các mô-đun và gói bạn nhập
Để biết những gì trong PMSP hiện tại của bạn, bạn có thể chạy đoạn mã sau
>>>
python /usr/lib/python3.5/pdb.py
31Chạy mã này, bạn sẽ nhận được danh sách các thư mục và tệp
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
33 nơi Python tìm kiếm các mô-đun bạn nhậpSử dụng echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
34 và echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
35
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
Trong Thư viện chuẩn Python, bạn có thể tìm thấy
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
34, đây là mô-đun cung cấp echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
37Với
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
37, bạn có thể mô phỏng hoạt động của python /usr/lib/python3.5/pdb.py
66 và do đó, thực thi bất kỳ mô-đun hoặc tập lệnh nào. Hãy xem ví dụ này>>>
python /usr/lib/python3.5/pdb.py
32Khi bạn đã nhập mô-đun lần đầu tiên, bạn sẽ không thể tiếp tục sử dụng
python /usr/lib/python3.5/pdb.py
66 để chạy mô-đun đó. Trong trường hợp này, bạn có thể sử dụng echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
51, điều này sẽ buộc trình thông dịch nhập lại mô-đun, giống như trong đoạn mã sau>>>
python /usr/lib/python3.5/pdb.py
33Một điểm quan trọng cần lưu ý ở đây là đối số của
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
52 phải là tên của một đối tượng mô-đun, không phải là một chuỗi>>>
python /usr/lib/python3.5/pdb.py
34Nếu bạn sử dụng một chuỗi làm đối số, thì
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
52 sẽ đưa ra một ngoại lệ echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
54Ghi chú. Đầu ra của mã trước đó đã được viết tắt [
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
55] để tiết kiệm dung lượngecho "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
51 rất hữu ích khi bạn đang sửa đổi một mô-đun và muốn kiểm tra xem các thay đổi của mình có hoạt động hay không mà không cần rời khỏi phiên tương tác hiện tạiCuối cùng, nếu bạn đang sử dụng Python 2. x, thì bạn sẽ có
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
35, là mô-đun cung cấp chức năng có tên là echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
52. echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
59 hoạt động tương tự như echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
51. Đây là một ví dụ>>>
python /usr/lib/python3.5/pdb.py
35Trong Python 2. x,
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
52 là một chức năng tích hợp sẵn. Trong phiên bản 2. 6 và 2. 7, nó cũng được bao gồm trong echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
35, để hỗ trợ quá trình chuyển đổi sang 3. xGhi chú.
echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
35 không được dùng nữa kể từ phiên bản 3. 4 ngôn ngữ. Gói echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
35 đang chờ ngừng sử dụng để ủng hộ echo "import sys; print[sys.version]" > pdb.py
python -m pdb
3.5.2 |Anaconda 4.1.1 [64-bit]| [default, Jul 5 2016, 11:41:13] [MSC v.1900 64 bit [AMD64]]
34Loại bỏ các quảng cáoSử dụng python /usr/lib/python3.5/pdb.py
36 và python /usr/lib/python3.5/pdb.py
37
python /usr/lib/python3.5/pdb.py
python /usr/lib/python3.5/pdb.py
Thư viện tiêu chuẩn bao gồm một mô-đun có tên là
python /usr/lib/python3.5/pdb.py
38. Trong mô-đun này, bạn có thể tìm thấy python /usr/lib/python3.5/pdb.py
39, đây là chức năng cho phép bạn chạy các mô-đun mà không cần nhập chúng trước. Hàm này trả về từ điển python /usr/lib/python3.5/pdb.py
60 của mô-đun đã thực thiĐây là một ví dụ về cách bạn có thể sử dụng nó
>>>
python /usr/lib/python3.5/pdb.py
36Mô-đun được định vị bằng cơ chế
python /usr/lib/python3.5/pdb.py
66 tiêu chuẩn và sau đó được thực thi trên một không gian tên mô-đun mớiĐối số đầu tiên của
python /usr/lib/python3.5/pdb.py
39 phải là một chuỗi có tên tuyệt đối của mô-đun [không có phần mở rộng 1#!/usr/bin/env python3
2
3print['Hello World!']
7]Mặt khác,
python /usr/lib/python3.5/pdb.py
38 cũng cung cấp python /usr/lib/python3.5/pdb.py
65, cho phép bạn chạy một mô-đun bằng cách cung cấp vị trí của nó trong hệ thống tệp>>>
python /usr/lib/python3.5/pdb.py
37Giống như
python /usr/lib/python3.5/pdb.py
39, python /usr/lib/python3.5/pdb.py
65 trả về từ điển python /usr/lib/python3.5/pdb.py
60 của mô-đun đã thực thiTham số
python /usr/lib/python3.5/pdb.py
69 phải là một chuỗi và có thể tham khảo như sau- Vị trí của tệp nguồn Python
- Vị trí của tệp mã byte được biên dịch
- Giá trị của một mục nhập hợp lệ trong
06, chứa mô-đunpython /usr/lib/python3.5/pdb.py
07 [tệppython /usr/lib/python3.5/pdb.py
302]python /usr/lib/python3.5/pdb.py
Hack python /usr/lib/python3.5/pdb.py
303
python /usr/lib/python3.5/pdb.py
Cho đến nay, bạn đã thấy những cách được sử dụng phổ biến nhất để chạy tập lệnh Python. Trong phần này, bạn sẽ thấy cách thực hiện điều đó bằng cách sử dụng
python /usr/lib/python3.5/pdb.py
303, đây là hàm tích hợp sẵn hỗ trợ thực thi động mã Pythonpython /usr/lib/python3.5/pdb.py
303 cung cấp một cách thay thế để chạy tập lệnh của bạn>>>
python /usr/lib/python3.5/pdb.py
38Câu lệnh này mở
1#!/usr/bin/env python3
2
3print['Hello World!']
9, đọc nội dung của nó và gửi nó đến python /usr/lib/python3.5/pdb.py
303, cuối cùng sẽ chạy mãVí dụ trên là một chút ra khỏi đó. Nó chỉ là một bản hack hack cho bạn thấy Python có thể linh hoạt và linh hoạt như thế nào
Sử dụng python /usr/lib/python3.5/pdb.py
308 [Python 2. x Chỉ]
python /usr/lib/python3.5/pdb.py
Nếu bạn thích sử dụng Python 2. x, bạn có thể sử dụng hàm tích hợp có tên là
python /usr/lib/python3.5/pdb.py
308, có thể chạy tập lệnh PythonĐối số đầu tiên của
python /usr/lib/python3.5/pdb.py
308 phải là một chuỗi chứa đường dẫn đến tệp bạn muốn chạy. Đây là một ví dụ>>>
python /usr/lib/python3.5/pdb.py
39Ở đây,
1#!/usr/bin/env python3
2
3print['Hello World!']
9 được phân tích cú pháp và đánh giá dưới dạng một chuỗi các câu lệnh PythonLoại bỏ các quảng cáoCách chạy tập lệnh Python từ IDE hoặc Trình soạn thảo văn bản
Khi phát triển các ứng dụng lớn hơn và phức tạp hơn, bạn nên sử dụng môi trường phát triển tích hợp [IDE] hoặc trình soạn thảo văn bản nâng cao
Hầu hết các chương trình này cung cấp khả năng chạy tập lệnh của bạn từ bên trong chính môi trường. Chúng thường bao gồm lệnh Run hoặc Build, lệnh này thường có sẵn từ thanh công cụ hoặc từ menu chính
Bản phân phối tiêu chuẩn của Python bao gồm IDLE làm IDE mặc định và bạn có thể sử dụng nó để viết, gỡ lỗi, sửa đổi cũng như chạy các mô-đun và tập lệnh của mình
Các IDE khác như Eclipse-PyDev, PyCharm, Eric và NetBeans cũng cho phép bạn chạy các tập lệnh Python từ bên trong môi trường
Các trình soạn thảo văn bản nâng cao như Sublime Text và Visual Studio Code cũng cho phép bạn chạy các tập lệnh của mình
Để nắm bắt chi tiết về cách chạy tập lệnh Python từ IDE hoặc trình chỉnh sửa ưa thích của bạn, bạn có thể xem tài liệu của nó
Cách chạy tập lệnh Python từ trình quản lý tệp
Chạy tập lệnh bằng cách nhấp đúp vào biểu tượng của nó trong trình quản lý tệp là một cách khả thi khác để chạy tập lệnh Python của bạn. Tùy chọn này có thể không được sử dụng rộng rãi trong giai đoạn phát triển, nhưng nó có thể được sử dụng khi bạn phát hành mã của mình để sản xuất
Để có thể chạy tập lệnh của bạn bằng cách nhấp đúp, bạn phải đáp ứng một số điều kiện sẽ phụ thuộc vào hệ điều hành của bạn
Ví dụ, Windows liên kết các phần mở rộng
1#!/usr/bin/env python3
2
3print['Hello World!']
7 và 1#!/usr/bin/env python3
2
3print['Hello World!']
8 với các chương trình python /usr/lib/python3.5/pdb.py
314 và python /usr/lib/python3.5/pdb.py
315 tương ứng. Điều này cho phép bạn chạy các tập lệnh của mình bằng cách nhấp đúp vào chúngKhi bạn có một tập lệnh với giao diện dòng lệnh, có khả năng là bạn chỉ nhìn thấy một cửa sổ màu đen nhấp nháy trên màn hình của mình. Để tránh tình trạng khó chịu này, bạn có thể thêm một câu lệnh như
python /usr/lib/python3.5/pdb.py
316 vào cuối tập lệnh. Bằng cách này, chương trình sẽ dừng cho đến khi bạn nhấn Enter . Thủ thuật này có nhược điểm của nó, mặc dù. Ví dụ: nếu tập lệnh của bạn có bất kỳ lỗi nào, quá trình thực thi sẽ bị hủy bỏ trước khi đến câu lệnh
python /usr/lib/python3.5/pdb.py
317 và bạn sẽ không thể xem kết quảTrên các hệ thống giống Unix, bạn có thể chạy các tập lệnh của mình bằng cách nhấp đúp vào chúng trong trình quản lý tệp của mình. Để đạt được điều này, tập lệnh của bạn phải có quyền thực thi và bạn sẽ cần sử dụng thủ thuật shebang mà bạn đã thấy. Tương tự như vậy, bạn có thể không thấy bất kỳ kết quả nào trên màn hình khi nói đến tập lệnh giao diện dòng lệnh
Do việc thực thi tập lệnh thông qua nhấp đúp có một số hạn chế và phụ thuộc vào nhiều yếu tố [chẳng hạn như hệ điều hành, trình quản lý tệp, quyền thực thi, liên kết tệp], nên bạn nên xem đó là một tùy chọn khả thi cho các tập lệnh đã được sửa lỗi
Phần kết luận
Sau khi đọc hướng dẫn này, bạn đã có được kiến thức và kỹ năng cần thiết để có thể chạy các tập lệnh và mã Python theo nhiều cách và trong nhiều tình huống và môi trường phát triển khác nhau
Bây giờ bạn có thể chạy tập lệnh Python từ
- Dòng lệnh hoặc thiết bị đầu cuối của hệ điều hành
- Chế độ tương tác Python
- IDE hoặc trình soạn thảo văn bản mà bạn thích nhất
- Trình quản lý tệp của hệ thống của bạn, bằng cách nhấp đúp vào biểu tượng tập lệnh của bạn
Những kỹ năng này sẽ làm cho quá trình phát triển của bạn nhanh hơn, cũng như hiệu quả và linh hoạt hơn
Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Cách chạy tập lệnh Python của bạn”. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian
Lấy bài kiểm tra "
Đánh dấu là đã hoàn thành
Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Chạy tập lệnh Python
🐍 Thủ thuật Python 💌
Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python
Gửi cho tôi thủ thuật Python »
Giới thiệu về Leodanis Pozo Ramos
Leodanis là một kỹ sư công nghiệp yêu thích Python và phát triển phần mềm. Anh ấy là một nhà phát triển Python tự học với hơn 6 năm kinh nghiệm. Anh ấy là một nhà văn đam mê kỹ thuật với số lượng bài báo được xuất bản ngày càng tăng trên Real Python và các trang web khác
» Tìm hiểu thêm về LeodanisMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là
Aldren
Joanna
Kyle
Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bạn nghĩ sao?
Đánh giá bài viết này
Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?
Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi