问题
EDIT
Using VSCode, I had an issue while debugging in a virtual environment that have different packages which are not installed in the base
environment. After activating the environment with the command activate my_env
, I can use the packages in the environment with usual python command as python main.py
. But while debugging, I can't use the packages which are only installed in my_env
. How can I debug a python code in a virtual environment using VSCode?
This is this the summary of the question. The rest has some specific info about my case.
BEFORE EDIT
I am trying to use xmltodict
package with a simple code using visual studio code.
import xmltodict
with open('C:\\Users\\user\\foo.xml') as f:
db_dict = xmltodict.parse(f.read())
print(db_dict)
I have a virtual environment named my_env
, and I installed xmltodict
package in it. When I activate the environment with activate my_env
, this code works fine. But, when I try to use vscode debug option, it gives No module named 'xmltodict'
error. Becuase vscode debug button opens new cmd and run the debugging command in it, I stopped debugging and typed activate my_env
in that cmd and tried to debug again, but still it can't find the module. Also, I tried jupiter notebook in vscode, it also doesn't see the package.
I see that import xmltodict
is underlined with red in vscode and it says Unable to import 'xmltodict'
, but it works when I run it normally from cmd. This happens sometimes for other modules and I don't know why. I installed xmltodict
module using pip
, maybe it causes that.
I am using Visual Studio Code 1.30.1 with Anaconda Python 3.7.1 on Windows 10.
How can I debug a python code in a virtual environment using VSCode? I saw this question, but I don't think it is exactly what I want?
回答1:
Set "python.pythonPath"
to point to the interpreter in the virtual environment that you want to use.
回答2:
I am using venv for creating virtualenv, and VS code to debug the code.
I found we don't have to create a lanuch.json file but added settings.json under {project}/.vscode/ folder worked as well. My settings.json is as below:
{
"python.testing.unittestArgs": [
"-v",
"-s",
".",
"-p",
"test_*.py"
],
"python.testing.pytestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.unittestEnabled": true,
"python.pythonPath": "/Users/hhh/project/bin/python"
}
I can debug the project and run the unit test as well. Hope it will help you.
来源:https://stackoverflow.com/questions/54009081/how-can-i-debug-a-python-code-in-a-virtual-environment-using-vscode