Vscode python args không hoạt động

Tôi nghĩ rằng tôi sẽ viết điều này như một bài đăng blog nhanh. Tôi thực sự ấn tượng với VS Studio, sau nhiều năm làm việc với IDE dựa trên Eclipse, nó có vẻ nhanh và mượt mà. Tuy nhiên, việc thiết lập đối số dòng lệnh cho mã bạn đang thực hiện có vẻ khó hơn bạn mong đợi. Trong khi trong Eclipse, có một tùy chọn để định cấu hình các đối số thời gian chạy trên menu, nó được ẩn nhiều hơn trong Mã VS

Định cấu hình đối số dòng lệnh trong VS Studio Code

Để thiết lập các đối số thời gian chạy của bạn, bạn cần chỉnh sửa lần khởi chạy của mình. json tồn tại trong các dự án của bạn. thư mục vscode

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: //go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": ["Demo.xml", "42"]
}
]
}

Bạn cần thêm dòng tùy chọn cấu hình “args”. Khóa này lấy một danh sách các đối số sẽ có sẵn trong mã của bạn

Sử dụng đối số dòng lệnh trong mã Python của bạn

Trong mã của bạn, sau đó bạn có thể làm điều gì đó như thế này

#Check the program has been called with the Excel Spreadsheet filename and Account Number
if len[sys.argv] != 3:
  print[sys.argv]
  print["Usage ,"]
  sys.exit[1]
else:
  # argv[0] in Python is always the name of the script.
  inputFile = sys.argv[1]
  inputAccount = sys.argv[2]
  print[sys.argv]

Điều này hoạt động khi bạn nhấn F5 để chạy mã hoặc bắt đầu phiên gỡ lỗi

Thay thế cho đối số dòng lệnh

Trên đây tôi đã giải thích cách thiết lập đối số/tham số dòng lệnh cho chương trình Python của bạn bằng Microsoft VisualCode Studio. Nó hoạt động nhưng nó hoạt động nhiều hơn mức cần thiết trong một IDE hiện đại. Vì vậy, trong mã gần đây hơn của tôi, tôi đã bắt đầu nhắc người dùng nhập các tham số còn thiếu thay vì chỉ nói với họ rằng họ đang thiếu. Nó không tốn nhiều công sức và thực sự làm cho chương trình của bạn thân thiện hơn với người dùng

Đây là một ví dụ đơn giản

# Check the program has been called with the a Customer ID
if len[sys.argv] < 1:
    print["Usage ]
    customerID = input['Enter customer ID :']
else:
    # argv[0] in Python is always the name of the script.
    customerID = sys.argv[1]

Trong đoạn mã này thay vì chỉ đưa ra thông báo lỗi và thoát khi chương trình chưa được gọi với các tham số phù hợp, chúng tôi yêu cầu người dùng nhập các tham số còn thiếu khi chạy. Điều này hữu ích hơn khi gỡ lỗi và cũng thân thiện hơn với người dùng cuối

Sách được đề xuất cho Microsoft Visual Studio Code

Sử dụng bảng lệnh để tìm thấy những gì bạn đang tìm kiếm một cách nhanh chóng

Tốt hơn là bạn chọn trình thông dịch từ môi trường ảo của mình nếu bạn sử dụng một. Nếu không, hãy chọn một phiên bản phù hợp. Nếu bạn không biết chọn cái nào, hãy chọn Python 3 với phiên bản mới nhất

Nếu bạn không có bất kỳ lựa chọn nào, hãy đảm bảo rằng bạn đã cài đặt Python trên hệ thống của mình và chọn nhập đường dẫn đến trình thông dịch theo cách thủ công. Bạn không cần phải làm vậy;

Chọn phiên bản Python phù hợp với dự án của bạn

Trong Windows, cái này trông như thế này

Chọn trình thông dịch Python trong Windows

Bước 2. Tạo một dự án Python mới trong VSCode

Khi bạn mở VSCode lần đầu tiên, bạn sẽ bắt đầu với một không gian làm việc trống. Hãy mở một thư mục mà chúng ta có thể bắt đầu thử nghiệm trước. Tôi đã tạo một cái trước, nhưng bạn cũng có thể sử dụng hộp thoại 'Mở thư mục' để tạo một cái tại chỗ. Làm thế nào điều này hoạt động chính xác khác nhau trên mỗi hệ điều hành. Trong Windows, bạn có thể nhấp vào 'Thư mục mới' chẳng hạn

Bước 3. Tạo và chạy tệp Python trong VSCode

Với trình thông dịch được định cấu hình, giờ đây chúng ta có thể chạy chương trình Python. Hãy tạo một chương trình đơn giản cho mục đích thử nghiệm. Tạo một tệp mới bằng cách nhấp vào nút 'tệp mới' trong trình khám phá ở bên trái hoặc sử dụng menu Tệp. Gọi nó là bất cứ điều gì bạn thích; . Nếu bạn chưa làm như vậy, VSCode có thể yêu cầu bạn chọn một trình thông dịch Python vào thời điểm này. Đi trước và chọn một

Sao chép và dán chương trình sau vào tệp mới tạo của bạn

import sys

if len[sys.argv] == 1:
    name = sys.argv[1]
else:
    name = 'stranger'

print[f'Hi there, {name}']

Mã này sẽ xem tập lệnh có nhận được đối số không. Nếu vậy, nó sẽ gán nó cho biến name. Nếu không, nó sẽ gọi bạn là người lạ. Tôi đã cố tình mắc lỗi mà chúng tôi sẽ cố gắng gỡ lỗi sau

Để chạy tệp này, bạn có thể sử dụng menu Run -> Run Without Debugging hoặc nhấn Control + F5 [Windows và Linux] hoặc cmd + F5 [MacOS]. Điều xảy ra tiếp theo là VSCode mở một cửa sổ đầu cuối tích hợp trong đó tệp được chạy. Vì chúng tôi đã cố ý phạm sai lầm, bạn sẽ nhận được một lỗi tương tự như

Traceback [most recent call last]:
  File "vscode_playground.py", line 4, in 
    name = sys.argv[1]
IndexError: list index out of range

Đây là những gì nó trông giống như trên Windows

Chương trình của chúng tôi đang chạy trong VSCode [có lỗi cố ý]

Gỡ lỗi Python trong VSCode

Gỡ lỗi là một trong những tính năng giúp IDE mạnh hơn trình chỉnh sửa đơn giản. Nó không khó thực hiện và có thể giúp bạn tiết kiệm nhiều giờ điên cuồng thêm các câu lệnh in vào mã của mình. Vì vậy, chúng ta hãy dành một chút nỗ lực để học những điều cơ bản ngay bây giờ

Gỡ lỗi tập tin hiện tại

Thay vì sử dụng tùy chọn ‘Run Without Debugging’, bây giờ chúng ta sẽ sử dụng tùy chọn ‘Run -> Start Debugging‘. Ngoài ra, bạn có thể chỉ cần nhấn F5. VSCode sẽ hỏi bạn muốn làm gì. Vì chúng tôi muốn chạy tệp hiện tại, hãy chọn 'Tệp Python'

Chương trình sẽ lại gặp sự cố với lỗi. Nhưng thay vì dừng lại, trình sửa lỗi xuất hiện và đánh dấu dòng xảy ra lỗi. Vì nó đang phàn nàn về việc chỉ mục danh sách nằm ngoài phạm vi, hãy kiểm tra kỹ hơn danh sách sys.argv

Khi di chuột qua văn bản sys.argv, bạn sẽ thấy một cửa sổ bật lên cho phép bạn kiểm tra chi tiết biến. Khi di chuột qua

import sys

if len[sys.argv] == 1:
    name = sys.argv[1]
else:
    name = 'stranger'

print[f'Hi there, {name}']
1, bạn sẽ thấy rất nhiều nội dung từ mô-đun sys. Khi di chuột qua
import sys

if len[sys.argv] == 1:
    name = sys.argv[1]
else:
    name = 'stranger'

print[f'Hi there, {name}']
2, bạn sẽ thấy nội dung của
import sys

if len[sys.argv] == 1:
    name = sys.argv[1]
else:
    name = 'stranger'

print[f'Hi there, {name}']
2

Kiểm tra nội dung của argv

Mặc dù chúng tôi không cung cấp đối số, nhưng

import sys

if len[sys.argv] == 1:
    name = sys.argv[1]
else:
    name = 'stranger'

print[f'Hi there, {name}']
2 vẫn chứa một phần tử. đường dẫn đầy đủ đến tập lệnh hiện tại. Một cái gì đó chúng tôi đã không lường trước được. Hệ điều hành luôn cung cấp cho chúng tôi tên của chương trình làm đối số đầu tiên trong argv. Tất cả những gì chúng ta cần làm bây giờ là thay đổi phép so sánh thành. nếu len[sys. đối số] == 2. Khởi động lại chương trình bằng cách nhấn nút khởi động lại ở trên cùng bên phải hoặc nhấn Control + Shift + F5 hoặc cmd + shift + F5. Bây giờ nó sẽ xuất ra 'Xin chào, người lạ' và thoát bình thường

Tạo cấu hình chạy

Bạn đã học được một phương pháp nhanh chóng để bắt đầu gỡ lỗi bằng cách chạy tệp hiện tại. Tuy nhiên, bạn có thể tạo một hoặc nhiều cấu hình chạy nếu muốn có nhiều tùy chọn hơn. Cấu hình như vậy cho phép bạn lưu trữ các tham số cụ thể, vì vậy chúng tôi có thể bắt đầu chương trình chính xác theo cách chúng tôi muốn

Để tạo cấu hình chạy, click Run -> Add Configuration. Chọn lại tùy chọn 'Tệp Python'. VSCode sẽ tạo một lần khởi chạy. tệp json trong. thư mục vscode. Tệp này được điền sẵn một cấu hình ví dụ. Sửa đổi JSON để trông như thế này

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Run with argument",
            "type": "python",
            "request": "launch",
            "program": "vscode_playground.py",
            "console": "integratedTerminal",
            "args": ["Erik"]
        }
    ]
}

Cấu hình này cung cấp một đối số cho tập lệnh. cái tên ‘Erik’. Lưu ý rằng nó cũng bắt đầu cụ thể vscode_playground. py thay vì tệp hiện tại. Bây giờ bạn có thể khởi chạy trình gỡ lỗi bằng cách sử dụng cấu hình này. Nhưng trước tiên, hãy mở chế độ xem Chạy/Gỡ lỗi trong bảng điều khiển bên trái bằng cách nhấp vào nút chạy lớn có lỗi nhỏ trên đó hoặc nhấp vào Ctrl+Shift+D hoặc Cmd+Shift+D

Mở dạng xem chạy và gỡ lỗi bằng cách nhấp vào nút hoặc nhấn Ctrl+Shift+D

Ở đầu chế độ xem này, bạn sẽ thấy cấu hình mới được tạo của mình. Bắt đầu nó bằng cách nhấp vào nút phát bên cạnh nó. Đầu ra bây giờ sẽ nói 'Xin chào, Erik'

Điểm dừng

Tại một số điểm, bạn muốn sử dụng điểm dừng. một dòng trong chương trình của bạn mà bạn muốn tạm dừng thực thi một cách rõ ràng hoặc tạm dừng để bạn có cơ hội kiểm tra trạng thái chương trình của mình tại thời điểm đó. Thêm một breakpoint cực kỳ dễ dàng. Ở lề trái là một khu vực thường được gọi là máng xối. Đây là khoảng trống ở phía bên trái của tệp nơi hiển thị số dòng. Một chấm đỏ mờ sẽ xuất hiện khi bạn di chuột đến đó và nó sẽ chuyển sang màu đỏ tươi khi bạn nhấp vào

Một điểm ngắt, nơi thực thi sẽ tạm dừng

Nếu bạn chạy chương trình ngay bây giờ, nó sẽ tạm dừng tại điểm dừng, cho phép bạn kiểm tra các biến tại thời điểm đó. Để tiếp tục, bạn có thể nhấp vào nút tiếp tục hoặc nhấn F5. Trình sửa lỗi sẽ tiếp tục thực hiện cho đến khi nó gặp một điểm dừng khác hoặc chương trình kết thúc

Ngoài ra, bạn có thể thực hiện chương trình từng bước từ đây bằng cách sử dụng các nút bước qua [F10], bước vào [F11] và bước ra [F12]. Bằng cách này, bạn có thể thực thi từng dòng chương trình và tùy ý bước vào và thoát khỏi lệnh gọi hàm Python

Một vài ghi chú ngắn về các loại bước này

  • Bước qua. chạy lệnh trên dòng này. Nếu đó là một cuộc gọi chức năng, hãy chạy toàn bộ chức năng thay vì 'bước vào' và chạy từng dòng chức năng
  • Bước vào. theo dõi [hoặc bước vào] một lời gọi hàm và chạy từng dòng chức năng đó
  • Bước ra khỏi. chạy chức năng đến cùng và quay lại điểm ngay sau khi nó được gọi

Bây giờ bạn đã có kiến ​​thức cơ bản vững chắc để bắt đầu gỡ lỗi trong VSCode. Để biết thêm chi tiết, tôi muốn giới thiệu bạn đến phần gỡ lỗi của tài liệu VSCode, đây sẽ là phần tiếp theo tuyệt vời của những gì tôi đã dạy cho bạn cho đến nay

Chạy lựa chọn hoặc dòng hiện tại

Một tính năng hữu ích khác là khả năng chạy lựa chọn mã hoặc dòng hiện tại bạn đang truy cập. Điều này không phải lúc nào cũng hữu ích. thông thường, một dòng mã hoặc lựa chọn mã phụ thuộc rất nhiều vào ngữ cảnh của nó. Nhưng đôi khi, nó có thể có ích. Để chạy lựa chọn mã hoặc dòng hiện tại, nhấn Shift+Enter hoặc sử dụng bảng lệnh và tìm kiếm 'chạy lựa chọn trong thiết bị đầu cuối'

Mã chạy trong REPL của Python và sau khi hoàn thành, REPL này vẫn mở để bạn có thể thử nghiệm, kiểm tra các biến, v.v. Ví dụ: nếu bạn 'chạy' một chức năng, bây giờ bạn có thể gọi chức năng đó từ REPL vì nó được xác định ở đó

Một tính năng thú vị là tất cả các lệnh tiếp theo để chạy một lựa chọn hoặc dòng hiện tại được thực thi trong cùng một REPL này, giữ nguyên trạng thái. Vì vậy, nếu bạn thay đổi chức năng và 'chạy' lại chức năng đó, thì chức năng đó sẽ được xác định lại trong REPL. Đó là một mẹo hay để kiểm tra mã bạn vừa viết, nhưng nó không phải là sự thay thế cho kiểm tra đơn vị thích hợp

Chạy mã từ thiết bị đầu cuối

VSCode có một thiết bị đầu cuối tích hợp, có thể cực kỳ hữu ích. Một số người không bao giờ sử dụng nó, và những người khác sử dụng nó mọi lúc. Tôi là một phần của nhóm cuối cùng đó. Tôi chạy mã của mình từ dòng lệnh trừ khi tôi đang gỡ lỗi. Tôi cũng kiểm soát phiên bản trên dòng lệnh. Tôi thấy rất hữu ích khi làm quen với tất cả các công cụ dòng lệnh. Nó cho phép tôi thực hiện các tác vụ quan trọng mà không cần IDE, e. g. , trên PC của người khác, thiết bị đầu cuối từ xa hoặc chỉ một cửa sổ thiết bị đầu cuối được mở nhanh thay vì mở một IDE hoàn chỉnh

Bên cạnh sở thích cá nhân của tôi, có một số trường hợp sử dụng trong đó việc sử dụng thiết bị đầu cuối thay vì GUI sẽ dễ dàng hơn. Ví dụ. khi bạn đang thử nghiệm với các tùy chọn dòng lệnh. Bạn có thể thêm các tùy chọn trong cấu hình chạy, nhưng sử dụng thiết bị đầu cuối sẽ nhanh hơn nếu các tùy chọn đó liên tục thay đổi

Vì vậy, hãy cũng khám phá cách chạy mã của bạn từ cửa sổ đầu cuối tích hợp

Bước 1. Mở thiết bị đầu cuối tích hợp

Sử dụng Bảng lệnh để chạy Terminal. Tạo Terminal mới hoặc sử dụng phím tắt Ctrl+Shift+` [đó là một backtick]. Một thiết bị đầu cuối sẽ mở ở cuối màn hình của bạn. Bằng cách nhấn lại tổ hợp phím đó, bạn có thể tạo thêm các cửa sổ đầu cuối. Bạn có thể nhanh chóng hiển thị và ẩn bảng điều khiển đầu cuối bằng cách nhấn Ctrl+` liên tục

Bước 2. Chạy mã của bạn

Đừng quên nếu bạn có. Tiếp theo, hãy chạy tệp Python của bạn như với bất kỳ tệp nào khác

$ python3 vscode_playground.py Erik
Hi there, Erik

VSCode và Python Virtualenv

Khi sử dụng môi trường ảo Python, bạn cần cho VSCode biết. Như đã đề cập trước đó, cách thực hiện việc này là chọn trình thông dịch từ môi trường ảo của bạn thay vì toàn hệ thống

Để kiểm tra điều này, trước hết hãy

import sys

if len[sys.argv] == 1:
    name = sys.argv[1]
else:
    name = 'stranger'

print[f'Hi there, {name}']
5

Như bạn có thể thấy từ ảnh chụp màn hình, VSCode gần như ngay lập tức nhận thấy rằng chúng tôi đã tạo venv này và đề nghị sử dụng nó

Nhấp vào có, và bạn đã hoàn tất. Ngoài ra, bạn có thể chọn thủ công venv này trong bảng lệnh [Ctrl+Shift+P] bằng cách nhập 'chọn trình thông dịch' và nhấp vào 'Python. chọn thông dịch viên. ’

Định dạng Python trong VSCode

Bạn có thể định dạng Python trong VSCode nếu bạn nhấn

  • các cửa sổ. Shift + alt + F
  • Mac. Shift + Tùy chọn + F
  • Linux. Ctrl+Shift+I [đó là chữ i viết hoa]
  • Hoặc mở bảng lệnh [ctrl + shift + p] và bắt đầu nhập 'format document'

VSCode, theo mặc định, định dạng tài liệu hiện tại. Nếu bạn chưa làm như vậy, nó sẽ hỏi bạn có muốn cài đặt một trình định dạng như autopep8, black hoặc yapf không. Chọn một [mặc định, nếu bạn không chắc chắn] và để nó cài đặt

Từ giờ trở đi, nếu bạn nhấn phím tắt định dạng trong khi chỉnh sửa tệp Python, bạn sẽ nhận thấy rằng tệp của mình được định dạng theo quy tắc mặc định của trình định dạng. Nếu bạn muốn tùy chỉnh các quy tắc này, bạn sẽ cần tra cứu [e. g. , trên Google] cách thực hiện điều đó cho trình định dạng cụ thể mà bạn đã chọn. Thông thường, bạn có thể thêm hoặc sửa đổi các quy tắc bằng cách tạo một tệp cụ thể trong thư mục chính của dự án của bạn

Lưu không gian làm việc

Cuối cùng, bạn có thể muốn lưu không gian làm việc của mình. Nó không cần thiết, mặc dù. Bạn chỉ cần mở lại thư mục. Các tùy chỉnh như cấu hình khởi chạy của bạn được giữ trong [ẩn]. vscode và VSCode sẽ tìm thấy thư mục này nếu bạn mở thư mục. Tuy nhiên, nếu bạn đã mở nhiều thư mục trong không gian làm việc của mình và không muốn lặp lại các bước đó liên tục, bạn có thể lưu không gian làm việc bằng cách sử dụng Tệp -> Lưu không gian làm việc dưới dạng. thực đơn

Liệu Python 3. 10 Làm việc với mã Visual Studio?

Mỗi phiên bản Visual Studio hướng đến một phiên bản Python cụ thể. Ví dụ: Visual Studio 2019 đã nhắm mục tiêu Python 3. 7, trong khi Visual Studio 2022 nhắm đến Python 3. 9 [ Trăn 3. 10 mới ra mắt , nhưng vẫn còn nhiều gói phổ biến chưa được hỗ trợ đầy đủ, vì vậy Python 3. 9 là lựa chọn tốt hơn].

Tại sao mã không chạy trong mã Visual Studio?

Nếu thiết bị đầu cuối của bạn được đặt để chỉ chạy với tư cách quản trị viên và bạn không khởi chạy Mã VS với tư cách quản trị viên, thì thiết bị đầu cuối sẽ không thể mở . Bạn có thể thay đổi thiết bị đầu cuối mặc định hoặc chỉnh sửa các thuộc tính của exe thiết bị đầu cuối để không chạy với tư cách quản trị viên.

Làm cách nào để chuyển các đối số dòng lệnh trong Mã Java VS?

Chúng ta cũng có thể truyền các đối số dòng lệnh cho một chương trình trong Eclipse bằng cách sử dụng Cấu hình Chạy. .
Bước 1. Mở Cài đặt cấu hình chạy lớp. Từ trình chỉnh sửa lớp, nhấp chuột phải và chọn “Run As” -> “Run Configurations…”. .
Bước 2. Chỉ định Đối số Chương trình trong Tab Đối số. .
Bước 3. Bấm vào nút Chạy

Làm cách nào để cài đặt các gói Python trong Visual Studio Code?

Cài đặt các gói bằng cửa sổ Môi trường Python .
Từ cửa sổ Môi trường Python, chọn môi trường mặc định cho các dự án Python mới và chọn tab Gói. .
Cài đặt matplotlib bằng cách nhập tên của nó vào trường tìm kiếm rồi chọn lệnh Run. tùy chọn cài đặt pip matplotlib

Chủ Đề