Lệnh nào được sử dụng để tải mô-đun Python?

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

python /usr/lib/python3.5/pdb.py
28

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ụ,

python /usr/lib/python3.5/pdb.py
29 tương đương với
python /usr/lib/python3.5/pdb.py
30

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

python /usr/lib/python3.5/pdb.py
28 trước khi thực thi tập lệnh chính"

Đ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
1

python /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

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ừ

python /usr/lib/python3.5/pdb.py
3

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ì?

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áo

Trì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
1

Lờ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 ở trong

Bâ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
3

Mộ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

  •  1#!/usr/bin/env python3
     2
     3print['Hello World!']
    
    3 hoặc
     1#!/usr/bin/env python3
     2
     3print['Hello World!']
    
    4, là các chức năng tích hợp sẵn
  • Ctrl Ctrl + ZEnter 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à

     1#!/usr/bin/env python3
     2
     3print['Hello World!']
    
    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ác

    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

     1#!/usr/bin/env python3
     2
     3print['Hello World!']
    
    6 and press Enter .

  • 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

Loại bỏ các quảng cáo

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ẽ

  1. Xử lý các câu lệnh trong tập lệnh của bạn theo kiểu tuần tự

  2. 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

  3. 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 đọc

Sử dụng lệnh
 1#!/usr/bin/env python3
 2
 3print['Hello World!']
0

Để 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
6

Nế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
0

Thao 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à Unix

Nế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ới

Cuố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ày

python /usr/lib/python3.5/pdb.py
6

Bâ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
67

Loại bỏ các quảng cáo

Chạy các mô-đun với tùy chọn
python /usr/lib/python3.5/pdb.py
03

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
04

Tù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
07

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]]
3

Ghi 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ỗi

Sử 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ịch

Có hai cách để chỉ định đường dẫn đến trình thông dịch

  • python /usr/lib/python3.5/pdb.py
    
    62. viết đường dẫn tuyệt đối
  • python /usr/lib/python3.5/pdb.py
    
    09. sử dụng lệnh
    python /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ường
    $ 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

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
3

Vớ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áo

Cá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

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ùng

Khi 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
6

Bạ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
30

Hai 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ập

Có 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
31

Chạ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ập

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]]
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

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]]
37

Vớ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
32

Khi 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
33

Mộ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
34

Nế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]]
54

Ghi 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ượ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 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ại

Cuố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
35

Trong 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. x

Ghi 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]]
34

Loại bỏ các quảng cáo

Sử dụng
python /usr/lib/python3.5/pdb.py
36 và
python /usr/lib/python3.5/pdb.py
37

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
36

Mô-đ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
37

Giố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 thi

Tham 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
    python /usr/lib/python3.5/pdb.py
    
    06, chứa mô-đun
    python /usr/lib/python3.5/pdb.py
    
    07 [tệp
    python /usr/lib/python3.5/pdb.py
    
    302]

Hack
python /usr/lib/python3.5/pdb.py
303

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ã Python

python /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
38

Câ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ỉ]

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 Python

Loại bỏ các quảng cáo

Cá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úng

Khi 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ề Leodanis

Mỗ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ẻ Email

Bà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

Câu lệnh nào được sử dụng để tải một mô-đun trong Python?

Mã Python trong một mô-đun có quyền truy cập vào mã trong một mô-đun khác bằng quá trình nhập mã đó. câu lệnh nhập là cách phổ biến nhất để gọi máy móc nhập khẩu, nhưng đó không phải là cách duy nhất. Các chức năng như importlib.

Làm cách nào chúng ta có thể nhập một mô-đun bằng Python?

Mô-đun Python .
Lưu mã này vào tệp có tên mymodule. py. .
Nhập mô-đun có tên mymodule và gọi hàm chào. .
Lưu mã này vào tệp mymodule. py. .
Nhập mô-đun có tên mymodule và truy cập từ điển person1. .
Tạo bí danh cho mymodule gọi là mx. .
Nhập và sử dụng mô-đun nền tảng

Làm cách nào để nhập mô-đun trong dòng lệnh Python?

Thực hiện trình tự các bước sau. .
Tạo một tệp mô-đun nhỏ [như xúc xắc. ví dụ py, ở trên]
Bắt đầu trình thông dịch Python dòng lệnh mới trong cùng thư mục với tệp mô-đun của bạn. .
Đánh giá chức năng dir để xem những gì trong không gian tên chung ban đầu
Nhập mô-đun của bạn

Python tải các mô-đun từ đâu?

Python tìm kiếm các mô-đun trong “ sys. . py trong các thư mục được liệt kê trong biến sys.

Chủ Đề