Ubuntu'da Visual Studio Code ile Python ile virtualenv kullanın


87

Bir Python projem var ve projedeki dosyalar içinde gezinme / otomatik tamamlama mükemmel çalışıyor. Gezinme / otomatik tamamlamanın o virtualenv içindeki paketlerle çalışması için bir virtualenv belirtmek istiyorum .

Bunu settings.py'de denedim, ancak gezinme / otomatik tamamlama çalışmıyor. Ayrıca ayarlayarak "python.pythonPath":"~/dev/venvs/proj/bin/pythonorijinal navigasyonu / otomatik tamamlamayı öldürdü.

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

ayarlarla uğraşmak istemiyorsanız, bunun gibi bir shebang da işe yarar: #! bin / python3
Alex R

youtu.be/6YLMWU-5H9o?t=550 burada Dan Taylor, vscode'da virtualenv'in nasıl çalıştırılacağını açıklıyor
test30

Kodun en son sürümü için, sol alttaki python yorumlayıcısına tıkladım, sonra üst ortadaki komut paleti geldi, Python yorumlayıcısının yolunu girin, ardından Bul ... 'u seçin ve ~ / venv yolunuzu bulun / bin / python, python3.8 var
JCQian

Yanıtlar:


97

Uzantının en son güncellemesiyle yapmanız gereken tek şey "python.pythonPath"aşağıdaki gibi belirtmektir .

Değerleri "python.autoComplete.extraPaths"çalışma süresi sırasında belirlenecektir, ancak burada yine de özel yollar belirtmekte özgürsünüz.

Lütfen gerekli değişiklikler yapıldıktan sonra Visual Studio Code'u yeniden başlatmayı unutmayın.

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

2
FWIW En azından direk için mutlak bir yol kullanmak zorunda kaldım
Kat

6
Çalışma alanı ayarlarında mı demek istiyorsunuz? Yalnızca çalışma alanımın bir alt ağacı için tercihi ayarlamanın bir yolu var mı?
yucer

3
Bunu proje başına yapabilir misin?
holms

1
Yukarıdaki Don haklı. Lütfen VS Code web sitesini iki kez kontrol edin: code.visualstudio.com/docs/python/…
Ricardo Anjos

5
@holms yup, Çalışma Alanı Ayarlarını düzenlemek istiyorsunuz ( .vscode/settings.json)
Atav32

91

Eylül 2016 itibarıyla ( uzantının GitHub deposu belgelerine göre ), Visual Studio Code içinden, otomatik olarak oluşturulan bir bilinen yorumlayıcılar listesinden (projenizin sanal ortamındakiler dahil) yorumlayıcıyı seçmenize olanak tanıyan bir komutu çalıştırabilirsiniz. ).

Bu özelliği nasıl kullanabilirim?

  • Yukarıdaki komutu seçtikten sonra, keşfedilen tercümanların bir quick picklistesi bir listede görüntülenecektir .
  • Bu listeden bir yorumlayıcı seçmek , settings.json dosyasını otomatik olarak güncelleyecektir .

(*) Bu komut güncellendi için Python: Select InterpreterVisual Studio Kanunu (teşekkürler @nngeek) en son sürümünde.

Ayrıca, seçtiğiniz yorumlayıcının durum çubuğunun sol tarafında gösterileceğine dikkat edin, örneğin, Python 3.6 64-bit . Bu, Yorumlayıcı Seç özelliğini tetiklemek için tıklayabileceğiniz bir düğmedir .


3
üzücü bir şey, listeye yeni bir tercüman eklememe izin vermiyor ... bu mümkün mü?
Genuinefafa

@genuinefafa Kod hakkında pek bir şey bilmiyorum, ancak bağladığım repo belgelerinde, yorumlayıcıların standart yollarda (/ usr / local / bin, / usr / sbin, / sbin), sanal ortamda arama yaptığını belirtiyor. mevcut proje ve Conda çevresi. Belki tercümanınızı otomatik olarak alabilmesi için bu konumlardan birine ekleyebilirsiniz. Ama sadece tahmin ediyorum.
Daniel F.

Bu iyi bir fikir @DanielF. Çözüyorum ama proje ortamına işaret eden dizinleri manuel olarak ayarlıyorum. $PATHFikri (aslında bir şeydir işe yaramadı workonkomut yapmalıdır). Bu, birkaç hafta önce test edildi, yeni sürümlerde çözülüp çözülmediğinden emin değil.
Genuinefafa

4
Virtualenv'inizi bulmak için python.venvPathayarlanması gerekir.
Mahmoud Hanafy

2
Aralık 2017 itibariyle 1.18.1 koduyla, komut Python: Select Interpreterkomut paletinden geliyor. Bir süre python workspacekomut listesinden arama yapmakta
zorlandı

35

Visual Studio Code için resmi Python uzantısını yüklediyseniz, Visual Studio Code'un en son sürümüyle oldukça basit :

Shift+ Command+P

Tür: Python: Yorumlayıcı Seçin

Sanal ortamınızı seçin.

Resmi site


14
Ne yazık ki, bu komut yerel sanal ortamları listelemekte başarısız oluyor.
Antonin

@Antonin En son sürümde vscode'umu test ediyorum, çalışıyor. Mac veya başka bir sistemde misiniz ve hatanız nedir?
DingLi

1
Gerçekten bir Mac'te, teşekkür ederim @DingLi, bunu kurduktan sonra işe yaradı:"python.venvFolders": [ "${rootPath}", "envs", ".pyenv", ".direnv" ],
Antonin

1
@Antonin sanal ortamlar için, ssword'un cevabına bakın
karton.swing

2
Evet, gerçekten sizin ve diğer herkesin "oldukça basit" demeyi bırakmasını diliyorum. Sanal ortamlar listelenmiyor, sadece yorumlayıcılar, 2019.6 macOS sürümü. Ve bu sadece python yorumlayıcıları değil, virtualenv diyen bir sorudur. @ssword doğru cevaba sahip. Ya da en azından, Virtualenv tabanlı konfigürasyonun geri kalanını getireceğini umuyorum, ki bu sadece python çalıştırılabilir değil.
JL Peyret

34

Visual Studio Code için en son Python uzantısıyla, bir venvPath Ayarı vardır:

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

Mac OS X'te, KodTercihlerAyarlar'a gidin ve aşağı kaydırarak Python Yapılandırması'na gidin .

Arayın "python.venvPath: "",ve kullanıcı ayarlarını açmak için sol taraftaki kalemini tıklayın. Son olarak, sanal ortamlarınızı depoladığınız yere giden yolu ekleyin.

Virtuanenvwrapper kullanıyorsanız veya tüm sanal ortam ayarlarınızı tek bir klasöre koyduysanız, bu sizin için olanı olacaktır.

Yapılandırdıktan sonra "python.venvPath"Visual Studio Code'u yeniden başlatın. Ardından komut paletini açın ve "Python: Yorumlayıcı Seç" i arayın. Bu noktada, eklediğiniz sanal ortamla ilişkili yorumlayıcıyı görmelisiniz.


13

Başka bir yol, Visual Studio Code'u virtualenv kümesiyle bir terminalden açmaktır ve F1 Python: Select Interpretergerekli virtualenv'i gerçekleştirip seçmeniz gerekir.

Virtualenv


8
Bu bende işe yaramıyor gibi görünüyor. Ayarlar dosyasına ihtiyacım var. Eksik bir şey mi var?
McKay

1
Bu yöntemi başarıyla kullandım ama -a kodunu yapmam gerekiyordu.
YoFlynn

1
Bu bana doğru python yorumlayıcısını sağladı, ancak venv'imin geri kalanını bulamadı. Venv dizin adımı "ve" python.venvFolders'a eklemek sorunu çözdü.
user1055568

1
Önceki yorumum yanlıştı. Venv'i bulamamakla karıştırdığım başka sorunlar yaşıyordum.
user1055568

7

Python çalıştırılabilir sanal ortamın mutlak yolunu koyduğumda paketler de var. Daha sonra Visual Studio Code'u yeniden başlattım.

Mutlak yolları kodlamaktan kaçınmak için $ {workspaceRoot} almaya çalışıyorum.

{
    "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"
     ]
}


4

Bu sayfadaki diğer kişilerin istediği çalışma alanı ayarını kullanabildim.

Tercihlerde, ⌘ + P, python.pythonPatharama çubuğunda arayın.

Şuna benzer bir şey görmelisiniz:

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

Ardından pencerenin sağ tarafındaki ÇALIŞMA ALANI AYARLARI sekmesine tıklayın. Bu, ayarın yalnızca içinde bulunduğunuz çalışma alanı için geçerli olmasını sağlar.

Daha sonra, "python.pythonPath" yanındaki kalem simgesine tıklayın. Bu, ayarı çalışma alanı ayarlarının üzerine kopyalamalıdır.

Değeri aşağıdaki gibi değiştirin:

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

2

a) Visual Studio Code varsayılan sanal ortam yolu ayarını değiştirin. Buna "python.venvPath" denir. Bunu kod-> ayarlarına giderek ve python ayarları için aşağı kaydırarak yaparsınız.

b) VS Kodunu yeniden başlatın

c) Şimdi Shift + Command + P yapıp Python yazarsanız: Yorumlayıcı'yı seçin, sanal ortamlarınızın listesini görmelisiniz.


1

Kod içerisindeki (2018.03 itibariyle) gibi görünüyor. Python.venvFolders adlı bir yönerge tanıtıldı:

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

Tek ihtiyacınız olan virtualenv klasör adınızı eklemektir.


"Code-insider" nedir? Değil " Kod Insight " ?
Peter Mortensen

@Peter nightly builds of vscode
holms

1

Visual Studio Code sürüm 1.34.0 (1.34.0) kullanan Mac OS X'te, sanal ortamları tanımak için Visual Studio Code almak için aşağıdakileri yapmak zorunda kaldım:

Sanal ortamımın konumu ( ml_venv adlı ):

/Users/auser/.pyvenv/ml_venv

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

Settings.json'a aşağıdaki girişi ekledim :"python.venvPath": "/Users/auser/.pyvenv"

IDE'yi yeniden başlattım ve şimdi yorumlayıcıyı sanal ortamımdan görebiliyordum:

Buraya resim açıklamasını girin


Mutlak yolu kullanmak önemlidir. Bu benim için çalıştı. Teşekkürler
Alexander Suraphel

0

Bunu YouTube'dan aldım Python Visual Studio Kodu Ayarlanıyor ... Venv

Tamam, video bana pek yardımcı olmadı ama ... altındaki ilk yorum (videoyu yayınlayan kişi tarafından) çok mantıklı ve saf altın.

Temel olarak, Visual Studio Code'un yerleşik Terminalini açın. Sonrasource <your path>/activate.sh , komut satırından bir venv seçmenin her zamanki yolu. Doğru komut dosyasını bulup başlatmak için önceden tanımlanmış bir Bash işlevim var ve bu gayet iyi çalıştı.

Doğrudan YouTube yorumundan alıntı yapmak (tüm kredi aneuris ap'ye aittir ):

(gerçekten sadece 5-7. adımlara ihtiyacınız var)

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.

Fark edebileceğiniz gibi, hakkında konuşuyor activate.bat. Yani, benim için bir Mac'te çalışıyorsa ve Windows'ta da çalışıyorsa, oldukça sağlam ve taşınabilir olması ihtimali vardır. 😀

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.