Sử dụng virtualenv với Python với Visual Studio Code trong Ubuntu


86

Tôi có một dự án Python và điều hướng / tự động hoàn thành hoạt động hoàn hảo trong các tệp trong dự án. Tôi muốn chỉ định một virtualenv để điều hướng / tự động hoàn thành hoạt động với các gói bên trong virtualenv đó.

Tôi đã thử điều này trong settings.py, nhưng điều hướng / tự động hoàn thành không hoạt động. Cũng bởi thiết lập "python.pythonPath":"~/dev/venvs/proj/bin/pythonđã giết điều hướng / tự động hoàn thành ban đầu.

{
    "editor.rulers": [80,100],
    "python.autoComplete.extraPaths": [
        "~/dev/venvs/proj",
        "~/dev/venvs/proj/lib"
     ]
}

một công việc như thế này cũng làm việc, nếu bạn không muốn gây rối với các thiết lập: bin # / python3!
Alex R

youtu.be/6YLMWU-5H9o?t=550 tại đây Dan Taylor giải thích cách chạy virtualenv trong vscode
test30

Đối với phiên bản Code mới nhất, tôi chỉ cần nhấp vào trình thông dịch python ở dưới cùng bên trái, sau đó xuất hiện bảng lệnh ở trên cùng giữa, chọn Nhập đường dẫn đến trình thông dịch Python, sau đó chọn Tìm ... sau đó tìm trong ~ / đường dẫn venv của bạn / bin / python, tôi có python3.8
JCQian

Câu trả lời:


96

Với bản cập nhật mới nhất cho tiện ích mở rộng, tất cả những gì bạn cần làm là chỉ định "python.pythonPath"như sau.

Các giá trị cho "python.autoComplete.extraPaths"sẽ được xác định trong thời gian chạy, nhưng bạn vẫn có thể tự do chỉ định các đường dẫn tùy chỉnh trong đó.

Hãy nhớ khởi động lại Visual Studio Code sau khi các thay đổi cần thiết đã được thực hiện.

{
    "editor.rulers": [80,100],
    "python.pythonPath":"~/dev/venvs/proj/bin/python"
}

2
FWIW Tôi đã phải sử dụng một đường dẫn tuyệt đối ít nhất cho pylint
Kat

6
Ý bạn là trong cài đặt không gian làm việc? Có cách nào để thiết lập tùy chọn chỉ cho một cây con của không gian làm việc của tôi không?
yucer

3
Bạn có thể làm điều này cho mỗi dự án?
holms

1
Don ở trên là đúng. Hãy chỉ cần kích đúp kiểm tra trang web của VS Mã số: code.visualstudio.com/docs/python/...
Ricardo Anjos

5
@holms yup, bạn muốn chỉnh sửa Cài đặt không gian làm việc ( .vscode/settings.json)
Atav32

91

Kể từ tháng 9 năm 2016 (theo tài liệu của kho lưu trữ GitHub về tiện ích mở rộng ), bạn chỉ có thể thực thi một lệnh từ trong Visual Studio Code cho phép bạn chọn trình thông dịch từ danh sách trình thông dịch được tạo tự động gồm các trình thông dịch đã biết (bao gồm lệnh trong môi trường ảo của dự án của bạn ).

Tôi có thể sử dụng tính năng này như thế nào?

  • Chọn lệnh Python: Select Workspace Interpreter(*) từ bảng lệnh (F1).
  • Khi chọn lệnh trên, một danh sách các trình thông dịch đã phát hiện sẽ được hiển thị trong một quick pickdanh sách.
  • Việc chọn một trình thông dịch từ danh sách này sẽ tự động cập nhật tệp settings.json .

(*) Lệnh này đã được cập nhật để Python: Select Interpretertrong phiên bản mới nhất của Visual Studio Mã (nhờ @nngeek).

Ngoài ra, hãy lưu ý rằng trình thông dịch đã chọn của bạn sẽ được hiển thị ở phía bên trái của thanh trạng thái, ví dụ: Python 3.6 64-bit . Đây là một nút bạn có thể nhấp để kích hoạt tính năng Chọn thông dịch viên .


3
điều đáng buồn, nó không cho phép tôi thêm một thông dịch viên mới vào danh sách ... điều đó thậm chí có thể?
hãngfafa

@genuinefafa Tôi không biết nhiều về Code, nhưng trong tài liệu repo tôi đã liên kết, nó nói rằng các trình thông dịch được phát hiện khi tìm kiếm trong các đường dẫn tiêu chuẩn (/ usr / local / bin, / usr / sbin, / sbin), môi trường ảo dưới dự án hiện tại và môi trường Conda. Có thể bạn có thể thêm thông dịch viên của mình vào một trong những vị trí này để nó tự động nhận. Nhưng tôi chỉ đoán thôi.
Daniel F.

Đó là một ý kiến ​​hay @DanielF. Tôi giải quyết nó nhưng thiết lập thủ công các thư mục trỏ đến môi trường dự án. Các $PATHý tưởng đã không làm việc (thực sự là những gì một workonkịch bản nên làm). Điều này đã được thử nghiệm cách đây vài tuần, không chắc liệu có giải quyết được nó trong các bản phát hành mới hay không.
truefafa

4
Để tìm virtualenv của bạn, python.venvPathcần phải được thiết lập.
Mahmoud Hanafy

2
Kể từ tháng 12 năm 2017 với mã 1.18.1, lệnh này là Python: Select Interpretertừ bảng lệnh. Đấu tranh cho một thời gian để tìm kiếm python workspacetừ danh sách lệnh ...
nngeek

35

Khá đơn giản với phiên bản mới nhất của Visual Studio Code, nếu bạn đã cài đặt tiện ích mở rộng Python chính thức cho Visual Studio Code :

Shift+ Command+P

Loại: Python: Chọn Trình thông dịch

Chọn môi trường ảo của bạn.

Trang điện tử chính thức


14
Rất tiếc, lệnh này không thể liệt kê các env ảo cục bộ.
Antonin

@Antonin Tôi kiểm tra vscode của mình trên phiên bản mới nhất, nó hoạt động. Bạn đang sử dụng hệ thống mac hay hệ thống khác, và lỗi của bạn là gì?
DingLi

1
Thật vậy trên máy Mac, cảm ơn bạn @DingLi, nó đã hoạt động sau khi thiết lập điều này:"python.venvFolders": [ "${rootPath}", "envs", ".pyenv", ".direnv" ],
Antonin

1
@Antonin cho envs ảo, xem câu trả lời của ssword
carton.swing

2
Vâng, tôi thực sự mong muốn bạn và tất cả những người khác ngừng nói "khá đơn giản". Env ảo không được liệt kê, chỉ có trình thông dịch, phiên bản macOS 2019.6. Và đây là một câu hỏi nói về virtualenv, không chỉ là trình thông dịch python. @ssword có câu trả lời chính xác. Hoặc ít nhất tôi hy vọng rằng nó sẽ mang lại phần còn lại của cấu hình dựa trên virtualenv, không chỉ là tệp thực thi python để sử dụng.
JL Peyret

34

Với tiện ích mở rộng Python mới nhất cho Visual Studio Code, có một Cài đặt venvPath:

// Path to folder with a list of Virtual Environments (e.g. ~/.pyenv, ~/Envs, ~/.virtualenvs).
  "python.venvPath": "",

Trên Mac OS X, đi tới Tùy chọnCài đặt và cuộn xuống Cấu hình Python .

Tìm "python.venvPath: "",và nhấp vào bút chì ở phía bên trái để mở cài đặt người dùng của bạn. Cuối cùng, thêm đường dẫn đến nơi bạn lưu trữ môi trường ảo của mình.

Nếu bạn đang sử dụng Virtuanenvwrapper hoặc bạn đã đặt tất cả cài đặt môi trường ảo của mình trong một thư mục, thì đây sẽ là thư mục dành cho bạn.

Sau khi bạn đã cấu hình "python.venvPath", hãy khởi động lại Visual Studio Code. Sau đó, mở bảng lệnh và tìm "Python: Select Interpreter". Tại thời điểm này, bạn sẽ thấy trình thông dịch được liên kết với môi trường ảo mà bạn vừa thêm vào.


13

Một cách khác là mở Visual Studio Code từ một thiết bị đầu cuối có bộ virtualenv và cần thực hiện F1 Python: Select Interpretervà chọn virtualenv cần thiết.

virtualenv


8
Điều này dường như không hiệu quả với tôi. Tôi phải có tệp cài đặt. Có điều gì tôi đang thiếu?
McKay

1
Tôi đã sử dụng phương pháp này thành công nhưng phải làm mã -a.
YoFlynn

1
Điều này giúp tôi tìm được trình thông dịch python phù hợp, nhưng nó không tìm thấy phần còn lại của venv của tôi. Thêm tên thư mục venv của tôi "ve" vào python.venvFolders đã sửa nó.
user1055568

1
Nhận xét trước đây của tôi là sai. Tôi đang gặp vấn đề khác mà tôi đã nhầm khi không tìm thấy venv.
user1055568

7

Tôi đặt đường dẫn tuyệt đối của môi trường ảo Python có thể thực thi cũng như có các gói. Sau đó tôi khởi động lại Visual Studio Code.

Tôi đang cố lấy $ {workspaceRoot} để tránh mã hóa cứng các đường dẫn tuyệt đối.

{
    "editor.rulers": [80,100],
    "python.pythonPath": "/home/jesvin/dev/ala/venv/bin/python",
    "python.autoComplete.extraPaths": [
        "/home/jesvin/dev/ala/venv/lib/python2.7",
        "/home/jesvin/dev/ala/venv/lib/python2.7/site-packages"
     ]
}

2
Tôi đã lớn lên một vấn đề tại github.com/DonJayamanne/pythonVSCode/issues/148
Jesvin Jose

4

Tôi đã có thể sử dụng cài đặt không gian làm việc mà những người khác trên trang này đang yêu cầu.

Trong Tùy chọn, ⌘ + P, tìm kiếm python.pythonPathtrên thanh tìm kiếm.

Bạn sẽ thấy một cái gì đó như:

// Path to Python, you can use a custom version of Python by modifying this setting to include the full path.
"python.pythonPath": "python"

Sau đó nhấp vào tab CÀI ĐẶT KHÔNG GIAN CÔNG TRÌNH ở phía bên phải của cửa sổ. Điều này sẽ làm cho nó để cài đặt chỉ áp dụng cho không gian làm việc mà bạn đang ở.

Sau đó, nhấp vào biểu tượng bút chì bên cạnh "python.pythonPath". Điều này sẽ sao chép cài đặt trên cài đặt không gian làm việc.

Thay đổi giá trị thành một cái gì đó như:

"python.pythonPath": "${workspaceFolder}/venv"

2

a) Sửa đổi cài đặt đường dẫn env ảo mặc định của Visual Studio Code. Nó được gọi là "python.venvPath". Bạn làm điều này bằng cách đi vào mã-> cài đặt và cuộn xuống để cài đặt python.

b) Khởi động lại mã VS

c) Bây giờ, nếu bạn thực hiện Shift + Command + P và nhập Python: Chọn Trình thông dịch, bạn sẽ thấy danh sách các môi trường ảo của mình.


1

Nó dường như là (tính đến 2018.03) trong mã nội bộ. Một chỉ thị đã được giới thiệu có tên là python.venvFolders:

  "python.venvFolders": [
    "envs",
    ".pyenv",
    ".direnv"
  ],

Tất cả những gì bạn cần là thêm tên thư mục virtualenv của bạn.


"Code-insider" là gì? Không phải " Code Insight " ?
Peter Mortensen

1

Trên Mac OS X sử dụng Visual Studio Code phiên bản 1.34.0 (1.34.0), tôi phải làm như sau để Visual Studio Code nhận dạng môi trường ảo:

Vị trí môi trường ảo của tôi (có tên ml_venv ):

/Users/auser/.pyvenv/ml_venv

auser@HOST:~/.pyvenv$ tree -d -L 2
.
└── ml_venv
    ├── bin
    ├── include
    └── lib

Tôi đã thêm mục nhập sau vào Settings.json :"python.venvPath": "/Users/auser/.pyvenv"

Tôi đã khởi động lại IDE và bây giờ tôi có thể thấy trình thông dịch từ môi trường ảo của mình:

Nhập mô tả hình ảnh tại đây


Vấn đề sử dụng đường dẫn tuyệt đối. Điều này đã làm việc cho tôi. Cảm ơn
Alexander Suraphel

0

Tôi nhận được cái này từ YouTube Thiết lập Python Visual Studio Code ... Venv

OK, video thực sự không giúp ích được gì cho tôi nhiều, nhưng ... nhận xét đầu tiên dưới (của người đăng video) rất có ý nghĩa và là vàng ròng.

Về cơ bản, hãy mở Terminal tích hợp sẵn của Visual Studio Code. Sau đó source <your path>/activate.sh, theo cách thông thường, bạn chọn một venv từ dòng lệnh. Tôi có một chức năng Bash được xác định trước để tìm và khởi chạy tệp kịch bản phù hợp và điều đó hoạt động tốt.

Trích dẫn trực tiếp nhận xét đó trên YouTube (tất cả tín dụng cho Aneuris ap ):

(bạn thực sự chỉ cần bước 5-7)

1. Open your command line/terminal and type `pip virtualenv`.
2. Create a folder in which the virtualenv will be placed in.
3. 'cd' to the script folder in the virtualenv and run activate.bat (CMD).
4. Deactivate to turn of the virtualenv (CMD).
5. Open the project in Visual Studio Code and use its built-in terminal to 'cd' to the script folder in you virtualenv.
6. Type source activates (in Visual Studio Code I use the Git terminal).
7. Deactivate to turn off the virtualenv.

Như bạn có thể nhận thấy, anh ấy đang nói về activate.bat. Vì vậy, nếu nó hoạt động với tôi trên máy Mac và nó cũng hoạt động trên Windows, rất có thể nó khá mạnh mẽ và di động. 😀

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.