ใช้ Virtualenv กับ Python พร้อม Visual Studio Code ใน Ubuntu


87

ฉันมีโครงการ Python และการนำทาง / การเติมข้อความอัตโนมัติทำงานได้อย่างสมบูรณ์แบบภายในไฟล์ในโครงการ ฉันต้องการระบุVirtualenvเพื่อให้การนำทาง / การเติมข้อความอัตโนมัติทำงานร่วมกับแพ็กเกจภายใน Virtualenv นั้น

ฉันลองสิ่งนี้ใน settings.py แต่การนำทาง / การเติมข้อความอัตโนมัติไม่ทำงาน นอกจากนี้การตั้งค่า"python.pythonPath":"~/dev/venvs/proj/bin/pythonยังทำให้การนำทางเดิม / การเติมข้อความอัตโนมัติเสียไป

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

Shebang แบบนี้ก็ใช้ได้เช่นกันหากคุณไม่ต้องการยุ่งกับการตั้งค่า: #! bin / python3
Alex R

youtu.be/6YLMWU-5H9o?t=550ที่นี่ Dan Taylor อธิบายวิธีเรียกใช้ Virtualenv ใน vscode
ทดสอบ 30

สำหรับ Code เวอร์ชันล่าสุดฉันเพียงแค่คลิกตัวแปล python ที่ด้านล่างซ้ายจากนั้นจะมีชุดคำสั่งที่ตรงกลางด้านบนเลือกเข้าสู่เส้นทางไปยังตัวแปล Python จากนั้นเลือกค้นหา ... จากนั้นค้นหาใน ~ / เส้นทาง venv ของคุณ / bin / python ฉันมี
python3.8

คำตอบ:


97

ด้วยการอัปเดตส่วนขยายล่าสุดสิ่งที่คุณต้องทำเพียงระบุ"python.pythonPath"ดังต่อไปนี้

ค่าสำหรับ"python.autoComplete.extraPaths"จะถูกกำหนดระหว่างรันไทม์ แต่คุณยังคงมีอิสระในการระบุพา ธ ที่กำหนดเองในนั้น

โปรดอย่าลืมรีสตาร์ท Visual Studio Code เมื่อทำการเปลี่ยนแปลงที่จำเป็นแล้ว

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

2
FWIW ฉันต้องใช้เส้นทางที่แน่นอนอย่างน้อยที่สุดสำหรับ pylint
Kat

6
คุณหมายถึงในการตั้งค่าพื้นที่ทำงานหรือไม่? มีวิธีใดบ้างในการตั้งค่าการตั้งค่าเฉพาะสำหรับแผนผังย่อยของพื้นที่ทำงานของฉัน
yucer

3
คุณสามารถทำสิ่งนี้ต่อโครงการได้หรือไม่?
Holms

1
ดอนข้างบนอยู่ขวา โปรดตรวจสอบเว็บไซต์ของ VS Code อีกครั้ง: code.visualstudio.com/docs/python/…
Ricardo Anjos

5
@holms ใช่คุณต้องการแก้ไขการตั้งค่าพื้นที่ทำงาน ( .vscode/settings.json)
Atav32

91

ณ เดือนกันยายน 2016 (ตามเอกสารที่เก็บ GitHub ของส่วนขยาย ) คุณสามารถดำเนินการคำสั่งจากภายใน Visual Studio Code ซึ่งจะช่วยให้คุณสามารถเลือกล่ามจากรายการล่ามที่รู้จักที่สร้างขึ้นโดยอัตโนมัติ (รวมถึงคำสั่งในสภาพแวดล้อมเสมือนของโครงการของคุณ ).

ฉันจะใช้คุณสมบัตินี้ได้อย่างไร?

  • เมื่อเลือกคำสั่งด้านบนรายการล่ามที่ค้นพบจะแสดงในquick pickรายการ
  • เลือกล่ามจากรายการนี้จะอัปเดตไฟล์ settings.json โดยอัตโนมัติ

(*) คำสั่งนี้ได้รับการอัปเดตเป็นPython: Select Interpreterในรุ่นล่าสุดของ Visual Studio รหัส (ขอบคุณ @nngeek)

นอกจากนี้ยังแจ้งให้ทราบว่าล่ามที่คุณเลือกจะแสดงที่ด้านซ้ายของสถานะเช่นงูหลาม 3.6 64 นี่คือปุ่มที่คุณสามารถคลิกเพื่อเรียกใช้คุณสมบัติSelect Interpreter


3
ที่น่าเศร้าคือไม่อนุญาตให้ฉันเพิ่มล่ามใหม่ในรายการ ... เป็นไปได้หรือไม่?
genuinefafa

@genuinefafa ฉันไม่รู้มากเกี่ยวกับ Code แต่ในเอกสาร repo ฉันเชื่อมโยงระบุว่ามีการค้นพบล่ามในเส้นทางมาตรฐาน (/ usr / local / bin, / usr / sbin, / sbin) สภาพแวดล้อมเสมือนภายใต้ โครงการปัจจุบันและสภาพแวดล้อมของ Conda บางทีคุณอาจเพิ่มล่ามของคุณไปยังสถานที่แห่งใดแห่งหนึ่งเพื่อให้มารับโดยอัตโนมัติ แต่ฉันแค่คาดเดา
Daniel F.

นั่นเป็นความคิดที่ดี @DanielF ฉันแก้ปัญหา แต่ตั้งค่าไดเรกทอรีที่ชี้ไปที่สภาพแวดล้อมโครงการด้วยตนเอง $PATHความคิดที่ไม่ได้ทำงาน (ที่จริงเป็นสิ่งที่workonสคริปต์ควรทำ) สิ่งนี้ได้รับการทดสอบเมื่อไม่กี่สัปดาห์ที่ผ่านมาไม่แน่ใจว่าการแก้ปัญหาในรุ่นใหม่
Genuinefafa

4
ในการค้นหา Virtualenv ของคุณpython.venvPathจำเป็นต้องตั้งค่า
Mahmoud Hanafy

2
ณ เดือนธันวาคม 2017 ด้วยรหัส 1.18.1 คำสั่งPython: Select Interpreterมาจากจานคำสั่ง พยายามอยู่สักพักเพื่อค้นหาpython workspaceจากรายการคำสั่ง ...
nngeek

35

ค่อนข้างง่ายด้วย Visual Studio Code เวอร์ชันล่าสุดหากคุณติดตั้งส่วนขยาย Python อย่างเป็นทางการสำหรับ Visual Studio Code :

Shift + Command +P

ประเภท: Python: เลือก Interpreter

เลือกสภาพแวดล้อมเสมือนของคุณ

เว็บไซต์อย่างเป็นทางการ


14
ขออภัยคำสั่งนี้ไม่สามารถแสดงรายการ envs เสมือนภายในเครื่องได้
Antonin

@ Antonin ฉันทดสอบ vscode ของฉันในเวอร์ชันล่าสุดมันใช้งานได้ คุณอยู่ในระบบ mac หรือระบบอื่นและข้อผิดพลาดของคุณคืออะไร?
DingLi

1
จริงๆแล้วบน Mac ขอบคุณ @DingLi มันใช้งานได้หลังจากตั้งค่านี้:"python.venvFolders": [ "${rootPath}", "envs", ".pyenv", ".direnv" ],
Antonin

1
@ Antonin สำหรับสภาพแวดล้อมเสมือนดูคำตอบของ ssword
carton.swing

2
ใช่ฉันขอให้คุณและคนอื่น ๆ หยุดพูดว่า "ค่อนข้างง่าย" สภาพแวดล้อมเสมือนไม่อยู่ในรายการมีเพียงล่ามรุ่น 2019.6 macOS เท่านั้น และนี่คือคำถามที่บอกว่า Virtualenv ไม่ใช่แค่ล่ามงูหลาม @ssword มีคำตอบที่ถูกต้อง หรืออย่างน้อยฉันหวังว่ามันจะนำส่วนที่เหลือของการกำหนดค่าที่ใช้ Virtualenv ซึ่งไม่ใช่แค่ python ที่สามารถใช้งานได้
JL Peyret

34

ด้วยส่วนขยาย Python ล่าสุดสำหรับ Visual Studio Code มีการตั้งค่า venvPath:

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

บน Mac OS X ไปที่รหัสการตั้งค่าการตั้งค่าและเลื่อนลงไปหลามการกำหนดค่า

มองหา"python.venvPath: "",และคลิกดินสอทางด้านซ้ายมือเพื่อเปิดการตั้งค่าผู้ใช้ของคุณ สุดท้ายเพิ่มเส้นทางไปยังตำแหน่งที่คุณจัดเก็บสภาพแวดล้อมเสมือนของคุณ

หากคุณใช้ Virtuanenvwrapper หรือคุณใส่การตั้งค่าสภาพแวดล้อมเสมือนทั้งหมดไว้ในโฟลเดอร์เดียวสิ่งนี้จะเป็นสิ่งที่เหมาะสำหรับคุณ

หลังจากที่คุณกำหนดค่า"python.venvPath"แล้วให้รีสตาร์ท Visual Studio Code จากนั้นเปิดจานคำสั่งและมองหา "Python: Select Interpreter" ณ จุดนี้คุณควรเห็นตัวแปลที่เกี่ยวข้องกับสภาพแวดล้อมเสมือนที่คุณเพิ่งเพิ่มเข้าไป


13

อีกวิธีหนึ่งคือการเปิด Visual Studio Code จากเทอร์มินัลที่มีชุด Virtualenv และต้องดำเนินการF1 Python: Select Interpreterและเลือก Virtualenv ที่ต้องการ

Virtualenv


8
ดูเหมือนจะไม่ได้ผลสำหรับฉัน ฉันต้องมีไฟล์การตั้งค่า มีบางอย่างที่ฉันขาดหายไป?
McKay

1
ฉันใช้วิธีนี้สำเร็จ แต่ต้องทำรหัส -a
YoFlynn

1
สิ่งนี้ทำให้ฉันมีล่ามหลามที่ถูกต้อง แต่มันไม่พบส่วนที่เหลือของฉัน การเพิ่มชื่อไดเร็กทอรี venv ของฉัน "ve" ไปยัง python.venvFolders แก้ไขได้
user1055568

1
ความคิดเห็นก่อนหน้าของฉันไม่ถูกต้อง ฉันมีปัญหาอื่น ๆ ที่ฉันเข้าใจผิดว่าไม่พบ Venv
user1055568

7

ฉันวางเส้นทางสัมบูรณ์ของสภาพแวดล้อมเสมือน Python ที่ปฏิบัติการได้เช่นกันมีแพ็คเกจ ฉันเริ่ม Visual Studio Code ใหม่แล้ว

ฉันกำลังพยายามรับ $ {workspaceRoot} เพื่อหลีกเลี่ยงการเข้ารหัสพา ธ สัมบูรณ์

{
    "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
ฉันได้แจ้งปัญหาที่github.com/DonJayamanne/pythonVSCode/issues/148
Jesvin Jose

4

ฉันสามารถใช้การตั้งค่าพื้นที่ทำงานที่คนอื่น ๆ ในเพจนี้ร้องขอได้

ในการตั้งค่า⌘ + P ให้ค้นหา python.pythonPathในแถบค้นหา

คุณควรเห็นสิ่งต่างๆเช่น:

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

จากนั้นคลิกที่แท็บ WORKSPACE SETTINGS ทางด้านขวาของหน้าต่าง วิธีนี้จะทำให้การตั้งค่าใช้ได้กับพื้นที่ทำงานที่คุณอยู่เท่านั้น

หลังจากนั้นคลิกที่ไอคอนดินสอถัดจาก "python.pythonPath" ควรคัดลอกการตั้งค่าไปไว้เหนือการตั้งค่าพื้นที่ทำงาน

เปลี่ยนค่าเป็นสิ่งที่ต้องการ:

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

2

a) ปรับเปลี่ยนการตั้งค่าเส้นทาง env เสมือนเริ่มต้นของ Visual Studio Code เรียกว่า "python.venvPath" คุณทำได้โดยไปที่ code-> settings แล้วเลื่อนลงไปที่ python settings

b) รีสตาร์ท VS Code

c) ตอนนี้ถ้าคุณทำ Shift + Command + P แล้วพิมพ์ Python: เลือก Interpreter คุณจะเห็นรายการสภาพแวดล้อมเสมือนของคุณ


1

ดูเหมือนว่าจะเป็น (ณ ปี 2018.03) ใน code-insider มีการแนะนำคำสั่งที่เรียกว่า python.venvFolders:

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

สิ่งที่คุณต้องมีคือเพิ่มชื่อโฟลเดอร์ Virtualenv ของคุณ


"code-insider" คืออะไร? ไม่ใช่" Code Insight " ?
Peter Mortensen

@ Peter คืนสร้างของ vscode
Holms

1

บน Mac OS X โดยใช้ Visual Studio Code เวอร์ชัน 1.34.0 (1.34.0) ฉันต้องทำสิ่งต่อไปนี้เพื่อรับ Visual Studio Code เพื่อรับรู้สภาพแวดล้อมเสมือน:

ตำแหน่งของสภาพแวดล้อมเสมือนของฉัน (ชื่อml_venv ):

/Users/auser/.pyvenv/ml_venv

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

ฉันเพิ่มรายการต่อไปนี้ในSettings.json :"python.venvPath": "/Users/auser/.pyvenv"

ฉันรีสตาร์ท IDE และตอนนี้ฉันสามารถเห็นล่ามจากสภาพแวดล้อมเสมือนของฉัน:

ใส่คำอธิบายภาพที่นี่


การใช้เส้นทางที่แน่นอนมีความสำคัญ สิ่งนี้ได้ผลสำหรับฉัน ขอบคุณ
Alexander Suraphel

0

ฉันได้รับสิ่งนี้จากYouTube การตั้งค่า Python Visual Studio Code ... Venv

โอเควิดีโอไม่ได้ช่วยอะไรฉันได้มากนัก แต่ ... ความคิดเห็นแรกใต้ (โดยผู้โพสต์วิดีโอ) มีเหตุผลมากและเป็นทองคำบริสุทธิ์

โดยทั่วไปให้เปิด Terminal ในตัวของ Visual Studio Code ' จากนั้นsource <your path>/activate.shตามปกติคุณจะเลือก venv จากบรรทัดคำสั่ง ฉันมีฟังก์ชัน Bash ที่กำหนดไว้ล่วงหน้าเพื่อค้นหาและเปิดไฟล์สคริปต์ที่ถูกต้องและมันก็ใช้ได้ดี

อ้างถึงความคิดเห็นของ YouTube โดยตรง (เครดิตทั้งหมดสำหรับaneuris ap ):

(คุณต้องการขั้นตอนที่ 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.

activate.batในขณะที่คุณอาจสังเกตเห็นเขาพูดคุยเกี่ยวกับ ดังนั้นถ้ามันใช้ได้กับฉันบน Mac และมันก็ใช้ได้กับ Windows ด้วยเช่นกันโอกาสที่มันจะแข็งแกร่งและพกพาได้ 😀

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.