Hướng dẫn vscode terminal wrong python version - vscode thiết bị đầu cuối phiên bản python sai
Tôi đã bị mắc kẹt trong một vấn đề này trong nhiều giờ và tin rằng tôi đã thử mọi thứ bên ngoài việc ném máy tính ra khỏi cửa sổ. Show
Tôi có một môi trường ảo được thiết lập trên Anaconda bằng cách sử dụng Python phiên bản 3.7 và Django phiên bản 2.1. Nếu tôi kích hoạt môi trường ảo này từ Anaconda, mọi thứ đều hoạt động trơn tru.
Tuy nhiên, khi tôi cố gắng kích hoạt môi trường từ thiết bị đầu cuối VSCODE, tôi sẽ nhận được
Tôi có 8 hiển thị là trình thông dịch python của tôi ở phía dưới bên trái của cửa sổ VSCode của tôi nhưng vẫn nhận được phiên bản Python saiTôi nghĩ rằng điều này có thể liên quan đến PythonPath nhưng đã thử không được giải quyết và đặt lại mặc dù tôi không phải lo lắng về điều này trong anaconda vì nó tự động thêm: 9using:
Terminal xuất phát Anaconda
VS mã đầu cuối
Như bạn có thể thấy nó dường như đang sử dụng phiên bản Mac OS Python mặc định. Có ai khác có vấn đề này trước đây không? Tôi đã xé tóc cả ngày để cố gắng sửa chữa cái này Trước khi tạo ra một vấn đề mới, vui lòng kiểm tra Câu hỏi thường gặp để xem câu hỏi của bạn có được trả lời ở đó không. Về lỗi này, tôi cố gắng sử dụng phiên bản Python khác. Microsoft/Debugpy#764 Microsoft/DebuGpy#764 (Nhận xét) Nhưng nếu đây là VENV (tự động được kích hoạt) thì trong thiết bị đầu cuối tôi thấy cho Python 0 không 1 vì môi trường mới được chọn trong danh sách kết hợp là cấu hình mới. Nếu trong lệnh thực thi thiết bị đầu cuối này 2 thì Terminal thoát khỏi dạng 3 sang bình thường, nhưng khi chạy 1 env khác, thì vẫn như vậy .. Microsoft/Debugpy#764 (Nhận xét)microsoft/debugpy#764 microsoft/debugpy#764 (comment) But if this is a venv (activated automatically) then in terminal I see for python 0 not 1 as new environment selected in combo-list as new config.If in this terminal execute command 2 then terminal escaping form 3 to normal, but when running 1 other env, then still this same..microsoft/debugpy#764 (comment) Thay đổi môi trường bằng cách tổ hợp trong thiết bị đầu cuối và là con đường cho Django. Đặt 2 VENVS khác nhau, ví dụ. 0 và 1 sau đó thực thi Django trong cả hai Env trong DebugMode đầy đủ.Lưu ý rằng trong các lỗi/vấn đề được liên kết giới thiệu phiên bản VSC: 1.61.2 và hiện được cập nhật và phát hiện ra vấn đề này trong 1.64.2 Bài viết này thảo luận về các tính năng của Môi trường Python hữu ích có sẵn trong Visual Studio Code. Một "môi trường" trong Python là bối cảnh trong đó chương trình Python chạy và bao gồm một thông dịch viên và bất kỳ số lượng gói được cài đặt nào.
Môi trường PythonMôi trường toàn cầuTheo mặc định, bất kỳ trình thông dịch Python nào đã cài đặt chạy trong môi trường toàn cầu của riêng mình. Chúng không cụ thể cho một dự án cụ thể. Ví dụ: nếu bạn chỉ chạy 7, 8 hoặc 9 tại một thiết bị đầu cuối mới (tùy thuộc vào cách bạn đã cài đặt Python), bạn đang chạy trong môi trường toàn cầu của trình thông dịch đó. Bất kỳ gói nào bạn cài đặt hoặc gỡ cài đặt đều ảnh hưởng đến môi trường toàn cầu và tất cả các chương trình mà bạn chạy trong đó.global environment. They aren't specific to a particular project. For example, if you just run 7, 8, or 9 at a new terminal (depending on how you installed Python), you're running in
that interpreter's global environment. Any packages that you install or uninstall affect the global environment and all programs that you run within it.Làm việc trong môi trường toàn cầu là một cách dễ dàng để bắt đầu. Tuy nhiên, nếu bạn cài đặt các gói trong môi trường đó, theo thời gian, nó sẽ trở nên đông đúc và gây khó khăn cho việc kiểm tra đúng một ứng dụng. Môi trường ảoĐể ngăn chặn sự lộn xộn như vậy, các nhà phát triển thường tạo ra một môi trường ảo cho một dự án. Môi trường ảo là một thư mục chứa một bản sao (hoặc liên kết symlink) của một trình thông dịch cụ thể. Khi bạn cài đặt vào môi trường ảo, bất kỳ gói nào bạn cài đặt chỉ được cài đặt trong thư mục con đó. Sau đó, khi bạn chạy một chương trình Python trong môi trường đó, bạn sẽ biết rằng nó chỉ chạy chống lại các gói cụ thể đó.virtual environment for a project. A virtual environment is a folder that contains a copy (or symlink) of a specific interpreter. When you install into a virtual environment, any packages you install are installed only in that subfolder. When you then run a Python program within that environment, you know that it's running against only those specific packages.
Công cụ môi trường PythonKhi bạn kích hoạt môi trường ảo của mình, bạn sẽ cần xác định cách quản lý nó và các gói đi kèm của nó. Bảng sau đây giải thích cách sử dụng các môi trường Python này:
Môi trường chung cưMôi trường Conda là môi trường Python được quản lý bằng cách sử dụng Trình quản lý gói 2 (xem bắt đầu với Conda (Conda.io)). Việc sử dụng môi trường Conda hay ảo sẽ phụ thuộc vào nhu cầu đóng gói của bạn, những gì nhóm của bạn đã tiêu chuẩn hóa, v.v.conda environment is a Python environment that's managed using the 2 package manager (see Getting started with conda (conda.io)). Whether to use a conda environment or a virtual one will depend on your packaging needs, what your team has standardized
on, etc.Nơi tiện ích mở rộng cho môi trườngPhần mở rộng tự động tìm kiếm thông dịch viên ở các vị trí sau:
Bạn cũng có thể chỉ định thủ công một trình thông dịch nếu mã Visual Studio không tự động định vị trình thông dịch của bạn.
Phần mở rộng cũng tải một tệp định nghĩa biến môi trường được xác định bởi cài đặt 4. Giá trị mặc định của cài đặt này là 5.Tạo môi trườngSử dụng lệnh tạo môi trườngTừ trong mã VS, bạn có thể tạo các môi trường phi toàn cầu, sử dụng môi trường ảo hoặc anaconda, bằng cách mở bảng lệnh (⇧⌘p (windows, linux ctrl+shift+p)), bắt đầu gõ lệnh python: tạo lệnh môi trường để tìm kiếm , và sau đó chọn lệnh.⇧⌘P (Windows, Linux Ctrl+Shift+P)), start typing the Python: Create Environment command to search, and then select the command. Lệnh trình bày một danh sách các loại môi trường: VENV hoặc Conda.Venv or Conda. Nếu bạn đang tạo một môi trường bằng VENV, lệnh sẽ trình bày một danh sách các phiên dịch viên có thể được sử dụng làm cơ sở cho môi trường ảo mới.Venv, the command presents a list of interpreters that can be used as a base for the new virtual environment. Nếu bạn đang tạo một môi trường bằng cách sử dụng Conda, lệnh sẽ trình bày một danh sách các phiên bản Python có thể được sử dụng cho dự án của bạn.Conda, the command presents a list of Python versions that can be used for your project. Sau khi chọn trình thông dịch mong muốn hoặc phiên bản Python, thông báo sẽ hiển thị tiến trình tạo môi trường và thư mục môi trường sẽ xuất hiện trong không gian làm việc của bạn.
Tạo một môi trường ảo trong thiết bị đầu cuốiĐể tạo môi trường ảo, hãy sử dụng lệnh sau, trong đó ".venv" là tên của thư mục môi trường:
Khi bạn tạo một môi trường ảo mới, một lời nhắc sẽ được hiển thị để cho phép bạn chọn nó cho không gian làm việc. Điều này sẽ thêm đường dẫn đến trình thông dịch Python từ môi trường ảo mới vào cài đặt không gian làm việc của bạn. Môi trường đó sau đó sẽ được sử dụng khi cài đặt các gói và chạy mã thông qua tiện ích mở rộng Python. Ví dụ về việc sử dụng môi trường ảo trong các dự án, hãy xem các hướng dẫn Python, Django và Flask.
Tạo môi trường Conda trong nhà gaPhần mở rộng Python tự động phát hiện các môi trường Conda hiện có. Chúng tôi khuyên bạn nên cài đặt trình thông dịch Python vào môi trường Conda của bạn, nếu không, một người sẽ được cài đặt cho bạn sau khi bạn chọn môi trường. Ví dụ: lệnh sau tạo môi trường Conda với trình thông dịch Python 3.9 và một số thư viện, trong đó mã vs sau đó hiển thị trong danh sách các phiên dịch viên có sẵn:
Ngược lại, nếu bạn không chỉ định trình thông dịch, như với 5, môi trường sẽ không xuất hiện trong danh sách.Để biết thêm thông tin về dòng lệnh Conda, xem Môi trường Conda (Conda.io). Ghi chú bổ sung:
Làm việc với các phiên dịch viên PythonChọn và kích hoạt một môi trườngTheo mặc định, phần mở rộng Python tìm kiếm và sử dụng trình thông dịch Python đầu tiên mà nó tìm thấy trong đường dẫn hệ thống. Để chọn một môi trường cụ thể, hãy sử dụng lệnh python: chọn lệnh phiên dịch từ bảng lệnh (⇧⌘p (windows, linux ctrl+shift+p)).Python: Select Interpreter command from the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)).
Bạn có thể chuyển đổi môi trường bất cứ lúc nào; Môi trường chuyển đổi giúp bạn kiểm tra các phần khác nhau trong dự án của bạn với các phiên dịch viên hoặc phiên bản thư viện khác nhau khi cần thiết. Lệnh Python: Chọn Trình thông dịch hiển thị danh sách các môi trường toàn cầu, môi trường chung cư và môi trường ảo. . Trong thư mục không gian làm việc:Python: Select Interpreter command displays a list of available global environments, conda environments, and virtual environments. (See the Where the extension looks for environments section for details, including the distinctions between these types of environments.) The following image, for example, shows several Anaconda and CPython installations along with a conda environment and a virtual environment ( 0) that's located within the workspace folder:
Nếu bạn có một thư mục hoặc không gian làm việc mở trong mã VS và bạn chọn trình thông dịch từ danh sách, tiện ích mở rộng Python sẽ lưu trữ thông tin đó trong nội bộ để cùng một trình thông dịch sẽ được sử dụng khi bạn mở lại không gian làm việc. Tiện ích mở rộng Python sử dụng môi trường đã chọn để chạy mã Python (sử dụng tệp Python: Run Python trong lệnh đầu cuối), cung cấp dịch vụ ngôn ngữ (tự động hoàn thành, kiểm tra cú pháp, lót, định dạng, v.v.) Trình chỉnh sửa và mở một thiết bị đầu cuối với thiết bị đầu cuối: Tạo lệnh thiết bị đầu cuối mới. Trong trường hợp sau, mã VS tự động kích hoạt môi trường đã chọn.Python: Run Python File in Terminal command), providing language services (auto-complete, syntax checking, linting, formatting, etc.) when you have a 1 file open in the editor, and opening a
terminal with the Terminal: Create New Terminal command. In the latter case, VS Code automatically activated the selected environment.
Phiên bản phiên dịch được chọn sẽ hiển thị ở phía bên phải của thanh trạng thái. Thanh trạng thái cũng phản ánh khi không có thông dịch viên được chọn. Trong cả hai trường hợp, nhấp vào khu vực này của thanh trạng thái là một phím tắt thuận tiện cho lệnh Python: chọn phiên dịch.Python: Select Interpreter command.
Chỉ định thủ công một thông dịch viênNếu mã VS không tự động xác định vị trí của trình thông dịch bạn muốn sử dụng, bạn có thể duyệt cho trình thông dịch trên hệ thống tệp của mình hoặc cung cấp đường dẫn đến nó theo cách thủ công. Bạn có thể làm như vậy bằng cách chạy lệnh Python: chọn Trình thông dịch và nhấp vào tùy chọn ENTER thông dịch ... hiển thị trên đầu danh sách phiên dịch:Python: Select Interpreter command and clicking on the Enter interpreter path... option that shows on the top of the interpreters list: Sau đó, bạn có thể nhập trực tiếp đường dẫn đầy đủ của trình thông dịch python vào hộp văn bản (ví dụ: ".venv/scripts/python.exe") hoặc bạn có thể chọn nút Tìm ... Python thực thi bạn muốn chọn.Find... button and browse your file system to find the python executable you wish to select. Nếu bạn muốn chỉ định thủ công trình thông dịch mặc định sẽ được sử dụng sau khi bạn mở không gian làm việc đầu tiên, bạn có thể tạo hoặc sửa đổi một mục cho cài đặt 6 trong không gian làm việc của bạn 3 với đường dẫn đầy đủ đến Python có thể thực thi.Ví dụ:
Bạn cũng có thể sử dụng 6 để trỏ đến môi trường ảo, ví dụ:
Ngoài ra, nếu bạn muốn thiết lập trình thông dịch mặc định cho tất cả các ứng dụng Python của mình, bạn có thể thêm một mục cho 6 theo cách thủ công trong cài đặt người dùng của bạn. Để làm như vậy, hãy mở bảng lệnh (⇧⌘P (Windows, Linux Ctrl+Shift+P)) và nhập tùy chọn: Cài đặt người dùng mở. Sau đó, đặt 6, nằm trong phần mở rộng Python của cài đặt người dùng, với trình thông dịch phù hợp.⇧⌘P (Windows, Linux Ctrl+Shift+P)) and enter Preferences: Open User
Settings. Then set 6, which is in the Python extension section of User Settings, with the appropriate interpreter.Bạn cũng có thể sử dụng biến môi trường trong cài đặt đường dẫn bằng cú pháp 2. Ví dụ: nếu bạn đã tạo một biến có tên 3 với đường dẫn đến trình thông dịch, thì bạn có thể sử dụng giá trị cài đặt sau: 2
Bằng cách sử dụng biến môi trường, bạn có thể dễ dàng chuyển dự án giữa các hệ điều hành trong đó các đường dẫn khác nhau, chỉ cần chắc chắn đặt biến môi trường trên hệ điều hành trước. Môi trường và cửa sổ thiết bị đầu cuốiSau khi sử dụng Python: Chọn trình thông dịch, trình thông dịch đó được áp dụng khi nhấp chuột phải vào tệp và chọn Python: Chạy tệp Python trong thiết bị đầu cuối. Môi trường cũng được kích hoạt tự động khi bạn sử dụng thiết bị đầu cuối: tạo lệnh thiết bị đầu cuối mới trừ khi bạn thay đổi cài đặt 5 thành 6.Python: Select Interpreter, that interpreter is applied when
right-clicking a file and selecting Python: Run Python File in Terminal. The environment is also activated automatically when you use the Terminal: Create New Terminal command unless you change the 5 setting to 6.Tuy nhiên, việc khởi chạy mã VS từ một shell trong đó một môi trường python nhất định được kích hoạt không tự động kích hoạt môi trường đó trong thiết bị đầu cuối tích hợp mặc định. Sử dụng thiết bị đầu cuối: Tạo lệnh thiết bị đầu cuối mới sau khi mã VS đang chạy.Terminal: Create New Terminal command after VS Code is running.
Bất kỳ thay đổi nào bạn thực hiện đối với một môi trường được kích hoạt trong thiết bị đầu cuối đều dai dẳng. Ví dụ, sử dụng 7 từ thiết bị đầu cuối với môi trường Conda được kích hoạt cài đặt gói vào môi trường đó vĩnh viễn. Tương tự, sử dụng 8 trong một thiết bị đầu cuối có môi trường ảo được kích hoạt thêm gói vào môi trường đó.Thay đổi phiên dịch bằng lệnh Python: Chọn lệnh phiên dịch không ảnh hưởng đến các bảng đầu cuối đã được mở. Do đó, bạn có thể kích hoạt các môi trường riêng biệt trong một thiết bị đầu cuối phân chia: chọn trình thông dịch đầu tiên, tạo thiết bị đầu cuối cho nó, chọn một trình thông dịch khác, sau đó sử dụng nút chia (\ (windows, linux ctrl+shift+5)) quán ba.Python: Select Interpreter command doesn't affect terminal panels that are already open. You can thus activate separate environments in a split terminal: select the first interpreter, create a terminal for it, select a different interpreter, then use the split button (⌘\ (Windows, Linux Ctrl+Shift+5)) in the terminal title bar. Chọn môi trường gỡ lỗiTheo mặc định, trình gỡ lỗi sẽ sử dụng trình thông dịch Python mà bạn đã chọn với phần mở rộng Python. Tuy nhiên, nếu bạn có thuộc tính 7 trong cấu hình gỡ lỗi là 0, phiên dịch đó sẽ được sử dụng thay thế. Để cụ thể hơn, mã VS sẽ được ưu tiên cho thuộc tính 7 của cấu hình gỡ lỗi được chọn trong 0. Nếu nó không được xác định, thì nó sẽ sử dụng đường dẫn đến trình thông dịch Python mà bạn đã chọn cho không gian làm việc của mình.Để biết thêm chi tiết về cấu hình gỡ lỗi, hãy xem các cấu hình gỡ lỗi. Hỗ trợ hạn chế cho Python 2.7Phần mở rộng Python không còn cung cấp hỗ trợ Intellisense cho Python 2.7 với Jedi vì nó chỉ hỗ trợ Python 3 tại thời điểm này. Khi sử dụng Python 2.7 với tiện ích mở rộng Python, bạn có thể tùy chỉnh cài đặt máy chủ ngôn ngữ để tắt tự động hoàn thành hoặc chọn Pylance làm máy chủ ngôn ngữ của bạn, vì nó có thể cung cấp trải nghiệm tốt nếu mã đủ tương thích với Python 3. Chúng tôi hiện đang hỗ trợ chọn Python 2.7 làm trình thông dịch trong không gian làm việc của bạn. Bởi vì Python 2.7 không còn được duy trì vào tháng 1 năm 2020, chúng tôi thực sự khuyên bạn nên nâng cấp mã của mình lên Python 3 ngay khi bạn có thể. Bạn có thể tìm hiểu cách chuyển mã của mình sang Python 3 nếu bạn cần trợ giúp. Biến môi trườngTệp định nghĩa biến môi trườngTệp định nghĩa biến môi trường là một tệp văn bản đơn giản chứa các cặp giá trị khóa dưới dạng 3, với 4 được sử dụng cho các bình luận. Các giá trị đa dạng không được hỗ trợ, nhưng các giá trị có thể đề cập đến bất kỳ biến môi trường nào khác đã được xác định trong hệ thống hoặc sớm hơn trong tệp. Để biết thêm thông tin, xem thay thế biến. Các tệp định nghĩa biến môi trường có thể được sử dụng cho các kịch bản như gỡ lỗi và thực thi công cụ (bao gồm cả linters, định dạng, intellisense và công cụ thử nghiệm), nhưng không được áp dụng cho thiết bị đầu cuối.Theo mặc định, phần mở rộng Python tìm kiếm và tải một tệp có tên 4 trong thư mục không gian làm việc hiện tại, sau đó áp dụng các định nghĩa đó. Tệp được xác định bởi mục nhập mặc định 6 trong cài đặt người dùng của bạn (xem Cài đặt Python chung). Bạn có thể thay đổi cài đặt 4 bất cứ lúc nào để sử dụng tệp định nghĩa khác.
Cấu hình gỡ lỗi cũng chứa thuộc tính 8 cũng mặc định vào tệp 4 trong không gian làm việc hiện tại (xem gỡ lỗi - Đặt các tùy chọn cấu hình). Thuộc tính này cho phép bạn dễ dàng đặt các biến cho mục đích gỡ lỗi thay thế các biến được chỉ định trong tệp 4 mặc định.Ví dụ: khi phát triển một ứng dụng web, bạn có thể muốn dễ dàng chuyển đổi giữa các máy chủ phát triển và sản xuất. Thay vì mã hóa trực tiếp các URL khác nhau và các cài đặt khác vào ứng dụng của bạn, bạn có thể sử dụng các tệp định nghĩa riêng biệt cho mỗi cài đặt. Ví dụ: Tệp dev.env 3FILD.ENV FILE 4Sau đó, bạn có thể đặt cài đặt 4 thành 2, sau đó đặt thuộc tính 8 trong cấu hình gỡ lỗi thành 4.
Thay thế biếnKhi xác định biến môi trường trong tệp định nghĩa, bạn có thể sử dụng giá trị của bất kỳ biến môi trường hiện tại nào với cú pháp chung sau: 5trong đó 03 có nghĩa là bất kỳ văn bản nào khác như được sử dụng trong giá trị. Các niềng răng xoăn được yêu cầu.Trong cú pháp này, các quy tắc sau áp dụng:
Sử dụng biến PythonpathBiến môi trường PythonPath chỉ định các vị trí bổ sung trong đó trình thông dịch Python nên tìm các mô -đun. Trong mã VS, PythonPath có thể được đặt thông qua các cài đặt thiết bị đầu cuối (terminal.integrated.env.*) Và/hoặc trong tệp 4.Khi các cài đặt thiết bị đầu cuối được sử dụng, PythonPath ảnh hưởng đến bất kỳ công cụ nào được chạy trong thiết bị đầu cuối của người dùng, cũng như bất kỳ hành động nào mà tiện ích mở rộng thực hiện cho người dùng được chuyển qua thiết bị đầu cuối như gỡ lỗi. Tuy nhiên, trong trường hợp này khi phần mở rộng đang thực hiện một hành động không được định tuyến qua thiết bị đầu cuối, chẳng hạn như việc sử dụng linter hoặc định dạng, thì cài đặt này sẽ không ảnh hưởng đến việc tra cứu mô-đun. Khi PythonPath được đặt bằng tệp 4, nó sẽ ảnh hưởng đến bất cứ điều gì mở rộng thay mặt bạn và các hành động được thực hiện bởi trình gỡ lỗi, nhưng nó sẽ không ảnh hưởng đến các công cụ chạy trong thiết bị đầu cuối.Nếu cần, bạn có thể đặt PythonPath bằng cả hai phương thức. Một ví dụ về thời điểm sử dụng PythonPath sẽ là nếu bạn có mã nguồn trong thư mục 17 và các thử nghiệm trong thư mục 18. Tuy nhiên, khi chạy thử nghiệm, các thử nghiệm đó thường không thể truy cập các mô-đun trong 17 trừ khi bạn các đường dẫn tương đối mã cứng.Để giải quyết vấn đề này, bạn có thể thêm đường dẫn vào 17 vào PythonPath bằng cách tạo tệp 4 trong không gian làm việc mã vs của bạn. 6Sau đó đặt 4 trong tệp 3 của bạn để trỏ đến tệp 4 bạn vừa tạo. Ví dụ: nếu tệp 4 nằm trong root không gian làm việc của bạn, 3 của bạn sẽ được đặt như hiển thị: 7Giá trị của Pythonpath có thể chứa nhiều vị trí được phân tách bằng 27: một dấu chấm phẩy ( 28) trên các cửa sổ và một dấu hai chấm ( 29) trên Linux/MacOS. Các đường dẫn không hợp lệ bị bỏ qua. Nếu bạn thấy rằng giá trị của bạn cho PythonPath không hoạt động như mong đợi, hãy đảm bảo rằng bạn đang sử dụng bộ phân cách chính xác giữa các vị trí cho hệ điều hành. Ví dụ: sử dụng dấu hai chấm để tách các vị trí trên Windows hoặc sử dụng dấu chấm phẩy để tách các vị trí trên Linux/MacOS dẫn đến giá trị không hợp lệ cho PythonPath, bị bỏ qua.
Bước tiếp theo
Nhiều tài nguyên Python hơn
11/3/2022 |