Ik have created a python test file in VSC. When I run this file it works fine and I see my output in the browser (Dash/Flask). However when I try to debug the file in VSC it gives me an error "No module named test.py" For sure I select the Python debug option.
My file structure is:
-root
-chapter
-test.py
What is the difference in debug and not debug?
Please check your launch.json. I have attached mine as a simple reference.
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
}
]
By the way, you can debug here
I tried some options. In the end this worked for me: "cwd": "${fileDirname}",
as you see "python --version show python3.10.4
but the interpreter show python 3.7.3
how can i change the envirnment in vscode
If you click on the interpreter version being used by VSCode, you should be able to select different versions across your device.
Selecting the interpreter in VSCode:
https://code.visualstudio.com/docs/python/environments#_work-with-python-interpreters
To run streamlit in vscode:
Open the launch.json file of your project.
Copy the following:
{
"configurations": [
{
"name": "Python:Streamlit",
"type": "python",
"request": "launch",
"module": "streamlit",
"args": [
"run",
"${file}"
]
}
]
}
Adding the following line to your setting.json (crtl+shift+P "preferences: open settings(JSON)").
"terminal.integrated.env.osx": {
"PATH": ""
}
I've inherited a python project that I can start via pipenv invoke app.start. It looks like app.start is defined in a tasks.py.
How can I set up vscode to debug this project so I can set breakpoints?
I've got the venv selected as my interpreter in vscode.
Thanks!
The entry point to invoke is a Python script that should be in your virtual environment's bin directory (on the same level as the python file). E.g. /Users/<user>/.virtualenvs/<virtual-env>/bin/invoke.
If you have the path to your Python interpreter, you can replace python with invoke in the "program" value below.
You can create a Python VS Code debugging configuration (launch.json) as follows to run the invoke script with any given arguments in the "args" value:
{
"version": "0.2.0",
"configurations": [
{
"name": "Start app",
"type": "python",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "path/to/virtualenv/invoke",
"args": ["app.start"],
"console": "integratedTerminal",
"stopOnEntry": false,
},
]
}
I have a really simple problem that I can't solve: when I run any python code in Integrated Terminal with vscode I can use my virtual environment created on Anaconda, but when I try to debug or use the button "run code" he clearly doesn't use my actual environment (and by that, don't finding my modules).
My Settings Json:
{
"python.pythonPath": "C:\\Users\\Giovani\\anaconda3\\python.exe",
"python.autoComplete.addBrackets": true,
"python.jediEnabled": false,
"python.linting.enabled": true,
"python.formatting.provider": "black",
"editor.detectIndentation": false,
"python.terminal.executeInFileDir": true,
"editor.tabSize": 4 }
And Lauch.json:
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}
] }
Images showing the issue:
Running without a problem in the integrated terminal:
Running in terminal
Running in "run code" or debugging:Run Code
Objective: Use the same virtual environment as in "python.pythonPath" on the debugger or the "run code" button.
Try launching VS Code from your activated conda environment. Then from within VS Code select the environment you activated by running the Python: Select Interpreter command.
Is it possible to run and debug Odoo on Visual Studio Code? If yes please share me the configuration.
Visual Studio Code is a source code editor developed by Microsoft for Windows, Linux and macOS. It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring. It is free and open-source, although the official download is under a proprietary license.
I know I'm a bit late but I have managed to work with Odoo 11.
My installation path is "C:\Program Files (x86)\Odoo 11.0\server"
Now open the vs code and goto Workspace settings and paste this:
{
"python.pythonPath": "C:\\Program Files (x86)\\Odoo 11.0\\python\\python.exe",
"python.linting.pylintEnabled": false,
// use this so the autocompleate/goto definition will work with python extension
"python.autoComplete.extraPaths": [
"${workspaceRoot}/odoo/addons",
"${workspaceRoot}/odoo",
"${workspaceRoot}/odoo/openerp/addons"
],
//"python.linting.pylintPath": "optional: path to python use if you have environment path",
"python.linting.enabled": false,
//load the pylint_odoo
"python.linting.pylintArgs": [
"--load-plugins",
"pylint_odoo"
],
"python.formatting.provider": "yapf",
//"python.formatting.yapfPath": "optional: path to python use if you have environment path",
// "python.linting.pep8Path": "optional: path to python use if you have environment path",
"python.linting.pep8Enabled": true,
// add this auto-save option so the pylint will sow errors while editing otherwise
//it will only show the errors on file save
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 500,
// The following will hide the compiled file in the editor/ add other file to hide them from editor
"files.exclude": {
"**/*.pyc": true
}
}
save it and open the code folder in vs "C:\Program Files (x86)\Odoo 11.0\server\odoo"
then goto debugging setting and a new configuration file and paste below code:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Odoo",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"console": "externalTerminal",
"program": "${workspaceRoot}\\..\\odoo-bin",
"args": [
"--config=${workspaceRoot}\\..\\odoo.conf",
],
"cwd": "${workspaceRoot}",
"env": {},
"envFile": "${workspaceRoot}/.env",
"debugOptions": [
"RedirectOutput"
]
}
]
}
and just hit the run button. remember vs code might give you some warning press ignore button and wait for the console to open and you are done. enjoy debugging and coding.
Don't forget to stop the Odoo service from window services.
Yes, you can even debug Odoo with VSCode:
First, you need to install the Python Extension within VSCode.
Add the folder where Odoo is installed to the current project. You can use the functionality Multiroot Workspaces. I think it is convenient in this case: open your project modules in one folder, and Odoo in other folder
Then, if you want to start debugging you just need to click on the Debug button and click on the wheel on the top of the sidebar. The file launch.json will open and you just need to add this element to the bottom.
{
"name": "Python: Odoo",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"console": "externalTerminal",
"program": "${workspaceRoot}/odoo_path/odoo.py",
"args": [
"--config=/odoo_config_path/.odoo_8.conf",
],
"cwd": "${workspaceRoot}",
"env": {},
"envFile": "${workspaceRoot}/.env",
"debugOptions": [
"RedirectOutput"
]
}
Once it is added you already can run Odoo under VSCode. For more information about the launch configurations click here
Now you can create breakpoint as usual. You can use the debugger console as well. And if you use the property: "console": "externalTerminal" as I did, you can show the log in an external console at the same time
Note: If you only want to run odoo you can use the integrated console in VSCode
Note 2: I recommend to install the Odoo Snippets extension as well.
I want to add updated answer and so I am sharing simple launch.json script I am using. This script assume odoo is in project folder.
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Odoo",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/odoo-bin",
"console": "integratedTerminal",
"args": [
"--addons-path",
"addons,mymodules",
],
}
]
}
vscode version: 1.39.2 (September 2019)
odoo version: 11
about launch.json: https://code.visualstudio.com/docs/editor/debugging#_launch-configurations
My settings - Odoo 12, Visual Studio Code 1.40.0, Linux
Building on Adeel Rizvi's post - thanks a lot! Updated for Linux and for newer VSCode.
I spent better part of the day to make it work. I use a multi-instance setup for Odoo, which didn't help at all.
For debugging, I needed to sort out the permissions hick-ups, so I decided to run the debugging instance as a current user. In the next commands, always replace myuser by your actual user name. Using my odoo70 user was a no-go, as it couldn't access the vscode stuff in my home folder, including the debugger.
I copied the Odoo stuff to /opt/odoo70l, did sudo chown -R myuser:users /opt/odoo70l and created a new postgres user sudo su - postgres -c "createuser --createdb --username postgres --no-createrole --no-superuser --no-password myuser" to keep being able to use peer authentication. That also required changing the database user to myuser in the config file - for me /opt/odoo70l/odoo70l.conf. (Note that it will make the previous databases inaccessible for the debugging instance - either change their owner, or export and import under the new user.) I also commented out the logfile there so it would print logs directly to the terminal.
I have my workspace in /opt/odoo-dev/ and its subfolders contain projects with modules I work on. I use multi-root workspace to be able to also peek into the base Odoo code.
My workspace options (/opt/odoo-dev/workspace-name.code-workspace):
(Each of my Odoo instances have their own python venv - if you don't use that, remember to edit python.pythonPath to /usr/bin/python3 or wherever your which python3 points to.)
{
"folders": [
{
"path": "."
},
{
"path": "/opt/odoo70l"
},
],
"settings": {
"python.pythonPath": "/opt/odoo70l/odoo-venv/bin/python3",
"python.linting.pylintEnabled": false,
// use this so the autocompleate/goto definition will work with python extension
"python.autoComplete.extraPaths": [
"/opt/odoo70l/odoo/addons",
"/opt/odoo70l/odoo",
"/opt/odoo70l/odoo/odoo/addons"
],
//"python.linting.pylintPath": "optional: path to python use if you have environment path",
"python.linting.enabled": false,
//load the pylint_odoo
"python.linting.pylintArgs": [
"--load-plugins",
"pylint_odoo"
],
"python.formatting.provider": "yapf",
//"python.formatting.yapfPath": "optional: path to python use if you have environment path",
// "python.linting.pep8Path": "optional: path to python use if you have environment path",
"python.linting.pep8Enabled": true,
// add this auto-save option so the pylint will sow errors while editing otherwise
//it will only show the errors on file save
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 500,
// The following will hide the compiled file in the editor/ add other file to hide them from editor
"files.exclude": {
"**/*.pyc": true
}
},
}
My /opt/odoo-dev/.vscode/launch.json (only the first block is important, rest is left there from default VSCode configuration in case you want to do other Python debugging as well):
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Odoo 12 myuser",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"console": "externalTerminal",
"program": "/opt/odoo70l/odoo/odoo-bin",
"args": [
"--config=/opt/odoo70l/odoo70l.conf",
],
"cwd": "${workspaceRoot}",
"env": {},
"envFile": "${workspaceRoot}/.env",
},
{
"name": "Python: Current File (Integrated Terminal)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
},
{
"name": "Python: Remote Attach",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "."
}
]
},
{
"name": "Python: Module",
"type": "python",
"request": "launch",
"module": "enter-your-module-name-here",
"console": "integratedTerminal"
},
{
"name": "Python: Django",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"console": "integratedTerminal",
"args": [
"runserver",
"--noreload",
"--nothreading"
],
"django": true
},
{
"name": "Python: Flask",
"type": "python",
"request": "launch",
"module": "flask",
"env": {
"FLASK_APP": "app.py"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"jinja": true
},
{
"name": "Python: Current File (External Terminal)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "externalTerminal"
}
]
}
Let's say possible,
Odoo official development done with ubuntu operating system.
For odoo 11.0 Most suggest subline or gedit with plugins most great tool for development.
Visula studio in ubuntu
https://www.youtube.com/watch?v=aY4Rhmv5P_Q
We had build lot odoo code since 2011 till date on gedit with ubuntu. Also atom https://atom.io/ is good tool for edting contents.
My special concern with gedit, it take very less memory and give speed.
In case you had large RAM, yes. this visual studio works great.