Gunakan virtualenv dengan Python dengan Visual Studio Code di Ubuntu

87

Saya memiliki proyek Python dan navigasi / pelengkapan otomatis bekerja dengan sempurna di dalam file dalam proyek. Saya ingin menentukan virtualenv sehingga navigasi / pelengkapan otomatis berfungsi dengan paket di dalam virtualenv itu.

Saya mencoba ini di settings.py, tetapi navigasi / pelengkapan otomatis tidak berfungsi. Juga dengan pengaturan "python.pythonPath":"~/dev/venvs/proj/bin/pythonmematikan navigasi asli / pelengkapan otomatis.

{
    "editor.rulers": [80,100],
    "python.autoComplete.extraPaths": [
        "~/dev/venvs/proj",
        "~/dev/venvs/proj/lib"
     ]
}
Jesvin Jose
sumber
shebang seperti ini juga berfungsi, jika Anda tidak ingin mengacaukan pengaturan: #! bin / python3
Alex R
youtu.be/6YLMWU-5H9o?t=550 di sini Dan Taylor menjelaskan cara menjalankan virtualenv di vscode
test30
Untuk Code versi terbaru, saya klik saja interpreter python di kiri bawah, lalu muncul perintah palette di tengah atas, pilih Enter path to a Python interpreter, lalu pilih Find ... lalu cari di ~ / path venv Anda / bin / python, saya punya python3.8
JCQian

Jawaban:

97

Dengan pembaruan terbaru pada ekstensi, yang perlu Anda lakukan hanyalah menentukan hal "python.pythonPath"-hal berikut.

Nilai untuk "python.autoComplete.extraPaths"akan ditentukan selama waktu proses, tetapi Anda masih bebas menentukan jalur khusus di sana.

Harap, ingat untuk memulai ulang Kode Visual Studio setelah perubahan yang diperlukan telah dibuat.

{
    "editor.rulers": [80,100],
    "python.pythonPath":"~/dev/venvs/proj/bin/python"
}
Mengenakan
sumber
2
FWIW Saya harus menggunakan jalur absolut setidaknya untuk pylint
Kat
6
Apakah yang Anda maksud dalam pengaturan ruang kerja? Apakah ada cara untuk mengatur preferensi hanya untuk subpohon dari ruang kerja saya?
yucer
3
Bisakah Anda melakukan ini per proyek?
holms
1
Don di atas benar. Silakan periksa kembali situs web VS Code: code.visualstudio.com/docs/python/…
Ricardo Anjos
5
@holms yup, Anda ingin mengedit Pengaturan Ruang Kerja ( .vscode/settings.json)
Atav32
91

Mulai September 2016 (menurut dokumentasi repositori GitHub tentang ekstensi ) Anda cukup menjalankan perintah dari dalam Visual Studio Code yang akan memungkinkan Anda memilih penerjemah dari daftar interpreter yang dikenal yang dibuat secara otomatis (termasuk yang ada di lingkungan virtual proyek Anda ).

Bagaimana cara menggunakan fitur ini?

  • Pilih perintah Python: Select Workspace Interpreter(*) dari palet perintah (F1).
  • Setelah memilih perintah di atas, daftar juru bahasa yang ditemukan akan ditampilkan dalam quick pickdaftar.
  • Memilih juru bahasa dari daftar ini akan memperbarui file settings.json secara otomatis .

(*) Perintah ini telah diperbarui ke Python: Select Interpreterdalam rilis terbaru Kode Visual Studio (terima kasih @nngeek).

Juga, perhatikan bahwa juru bahasa yang Anda pilih akan ditampilkan di sisi kiri bilah status, misalnya, Python 3.6 64-bit . Ini adalah tombol yang dapat Anda klik untuk mengaktifkan fitur Select Interpreter .

Daniel F.
sumber
3
Sayangnya, saya tidak dapat menambahkan penerjemah baru ke dalam daftar ... apakah itu mungkin?
genuinefafa
@genuinefafa Saya tidak tahu banyak tentang Kode, tetapi dalam dokumentasi repo yang saya tautkan menyatakan bahwa penerjemah ditemukan mencari di jalur standar (/ usr / local / bin, / usr / sbin, / sbin), lingkungan virtual di bawah proyek saat ini dan lingkungan Conda. Mungkin Anda bisa menambahkan juru bahasa Anda ke salah satu lokasi ini sehingga dapat mengambilnya secara otomatis. Tapi saya hanya menebak-nebak.
Daniel F.
Itu ide yang bagus @DanielF. Saya menyelesaikannya tetapi secara manual mengatur direktori yang menunjuk ke lingkungan proyek. The $PATHide tidak bekerja (sebenarnya apa workonnaskah harus dilakukan). Ini diuji beberapa minggu yang lalu, tidak yakin apakah menyelesaikannya dalam rilis baru.
genuinefafa
4
Untuk menemukan virtualenv Anda, python.venvPathperlu disetel.
Mahmoud Hanafy
2
Mulai Desember 2017 dengan kode 1.18.1, perintahnya berasal Python: Select Interpreterdari palet perintah. Berjuang beberapa saat untuk mencari python workspacedari daftar perintah ...
nngeek
35

Cukup sederhana dengan versi terbaru dari Visual Studio Code, jika Anda telah menginstal ekstensi resmi Python untuk Visual Studio Code :

Shift+ Command+P

Jenis: Python: Pilih Interpreter

Pilih lingkungan virtual Anda.

Situs resmi

DingLi
sumber
14
Sayangnya, perintah ini gagal mencantumkan env virtual lokal.
Antonin
@ Antonin Saya menguji vscode saya pada versi terbaru, berhasil. Apakah Anda menggunakan sistem mac atau yang lain, dan apa kesalahan Anda?
DingLi
1
Memang di Mac, terima kasih @DingLi, ini berhasil setelah menyiapkan ini:"python.venvFolders": [ "${rootPath}", "envs", ".pyenv", ".direnv" ],
Antonin
1
@ Antonin untuk virtual envs, lihat jawaban ssword
carton.swing
2
Ya, saya sangat berharap Anda, dan semua orang, berhenti mengatakan "cukup sederhana". Lingkungan virtual tidak dicantumkan, hanya penerjemah, versi macOS 2019.6. Dan ini adalah pertanyaan yang mengatakan virtualenv, bukan hanya penerjemah python. @ssword punya jawaban yang benar. Atau setidaknya saya berharap ini akan membawa konfigurasi berbasis virtualenv lainnya, yang BUKAN hanya python yang dapat dieksekusi untuk digunakan.
JL Peyret
34

Dengan ekstensi Python terbaru untuk Visual Studio Code, ada Pengaturan venvPath:

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

Di Mac OS X, buka CodePreferencesSettings dan gulir ke bawah ke Konfigurasi Python .

Cari "python.venvPath: "",dan klik pensil di sisi kiri untuk membuka pengaturan pengguna Anda. Terakhir, tambahkan jalur ke tempat Anda menyimpan lingkungan virtual Anda.

Jika Anda menggunakan virtuanenvwrapper, atau Anda telah meletakkan semua pengaturan lingkungan virtual Anda dalam satu folder, ini akan menjadi yang tepat untuk Anda.

Setelah Anda mengkonfigurasi "python.venvPath", mulai ulang kode Visual Studio. Kemudian buka palet perintah dan cari "Python: Select Interpreter". Pada titik ini, Anda akan melihat juru bahasa yang terkait dengan lingkungan virtual yang baru saja Anda tambahkan.

ssword
sumber
13

Cara lain adalah dengan membuka Visual Studio Code dari terminal dengan set virtualenv dan perlu melakukan F1 Python: Select Interpreterdan memilih virtualenv yang diperlukan.

virtualenv

pm.calabrese
sumber
8
Ini tampaknya tidak berhasil untuk saya. Saya harus memiliki file pengaturan. Apakah ada sesuatu yang saya lewatkan?
McKay
1
Saya menggunakan metode ini dengan sukses tetapi harus melakukan kode -a.
YoFlynn
1
Ini memberi saya juru bahasa python yang tepat, tetapi tidak menemukan sisa venv saya. Menambahkan nama direktori venv saya "ve" ke python.venvFolders memperbaikinya.
pengguna1055568
1
Komentar saya sebelumnya salah. Saya mengalami masalah lain yang saya anggap tidak menemukan venv.
pengguna1055568
7

Saya menempatkan jalur absolut dari lingkungan virtual yang dapat dieksekusi Python serta memiliki paket. Saya kemudian memulai ulang kode Visual Studio.

Saya mencoba untuk mendapatkan $ {workspaceRoot} untuk menghindari jalur absolut hardcode.

{
    "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"
     ]
}
Jesvin Jose
sumber
2
Saya telah mengangkat masalah di github.com/DonJayamanne/pythonVSCode/issues/148
Jesvin Jose
4

Saya dapat menggunakan pengaturan ruang kerja yang diminta oleh orang lain di halaman ini.

Di Preferensi, ⌘ + P, cari python.pythonPathdi bilah pencarian.

Anda akan melihat sesuatu seperti:

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

Kemudian klik tab PENGATURAN RUANG KERJA di sisi kanan jendela. Ini akan membuatnya jadi pengaturan hanya berlaku untuk ruang kerja Anda.

Setelah itu, klik ikon pensil di sebelah "python.pythonPath". Ini harus menyalin pengaturan di atas pengaturan ruang kerja.

Ubah nilainya menjadi seperti:

"python.pythonPath": "${workspaceFolder}/venv"
Charlie Le
sumber
2

a) Mengubah pengaturan jalur env virtual default Visual Studio Code. Ini disebut "python.venvPath". Anda melakukan ini dengan masuk ke kode-> pengaturan dan gulir ke bawah untuk pengaturan python.

b) Mulai Ulang Kode VS

c) Sekarang jika Anda melakukan Shift + Command + P dan mengetik Python: Pilih Interpreter Anda akan melihat daftar lingkungan virtual Anda.

Ajay K
sumber
1

Tampaknya (per 2018.03) di code-insider. Sebuah direktif telah diperkenalkan yang disebut python.venvFolders:

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

Yang Anda butuhkan hanyalah menambahkan nama folder virtualenv Anda.

holms
sumber
Apa itu "code-insider"? Bukan " Code Insight " ?
Peter Mortensen
@Peter nightly membangun vscode
holms
1

Di Mac OS X menggunakan Visual Studio Code versi 1.34.0 (1.34.0) saya harus melakukan hal berikut untuk mendapatkan Visual Studio Code untuk mengenali lingkungan virtual:

Lokasi lingkungan virtual saya (bernama ml_venv ):

/Users/auser/.pyvenv/ml_venv

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

Saya menambahkan entri berikut di Settings.json :"python.venvPath": "/Users/auser/.pyvenv"

Saya memulai ulang IDE, dan sekarang saya dapat melihat penerjemah dari lingkungan virtual saya:

Masukkan deskripsi gambar di sini

b.sodhi
sumber
Menggunakan jalur absolut itu penting. Ini berhasil untuk saya. Terima kasih
Alexander Suraphel
0

Saya mendapatkan ini dari YouTube Menyiapkan Python Visual Studio Code ... Venv

Oke, videonya benar-benar tidak banyak membantu saya, tapi ... komentar pertama di bawah (oleh orang yang memposting video) sangat masuk akal dan murni emas.

Pada dasarnya, buka Terminal built-in Visual Studio Code. Kemudiansource <your path>/activate.sh , cara biasa Anda memilih venv dari baris perintah. Saya memiliki fungsi Bash yang telah ditentukan untuk menemukan & meluncurkan file skrip yang tepat dan itu berfungsi dengan baik.

Mengutip komentar YouTube itu secara langsung (semua kredit untuk aneuris ap ):

(Anda benar-benar hanya membutuhkan langkah 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.

Seperti yang mungkin Anda perhatikan, yang dia bicarakan activate.bat. Jadi, jika ini berfungsi untuk saya di Mac, dan juga berfungsi di Windows, kemungkinan besar itu cukup kuat dan portabel. 😀

JL Peyret
sumber