Ich folgte den Anweisungen auf der Website von VS Code, aber es schien, dass nichts, was ich versuchte, funktionierte.
Ich habe nach Bedarf eine neue Konfiguration erstellt, aber wenn ich den Pfad eingebe, funktioniert er nicht im VS-Code, obwohl der Pfad, über den sich der VS-Code im integrierten Terminalfenster beschwert, gut funktioniert, wenn ich ihn manuell aufrufe.
Der Fehler, den der Debugger auslöst, ist folgender:
(automl-meta-learning) brandomiranda~/automl-meta-learning/automl/experiments ❯ env PTVSD_LAUNCHER_PORT=59729 /Users/brandomiranda/miniconda3/envs/automl-meta-learning/bin/python /Users/brandomiranda/.vscode/extensions/ms-python.python-2020.2.63072/pythonFiles/lib/python/new_ptvsd/wheels/ptvsd/launcher -m /Users/brandomiranda/automl-meta-learning/automl/experiments/experiments_model_optimization.py
E+00000.025: Error determining module path for sys.argv
Traceback (most recent call last):
File "/Users/brandomiranda/.vscode/extensions/ms-python.python-2020.2.63072/pythonFiles/lib/python/new_ptvsd/wheels/ptvsd/../ptvsd/server/cli.py", line 220, in run_module
spec = find_spec(options.target)
File "/Users/brandomiranda/miniconda3/envs/automl-meta-learning/lib/python3.7/importlib/util.py", line 94, in find_spec
parent = __import__(parent_name, fromlist=['__path__'])
ModuleNotFoundError: No module named '/Users/brandomiranda/automl-meta-learning/automl/experiments/experiments_model_optimization'
Stack where logged:
File "/Users/brandomiranda/miniconda3/envs/automl-meta-learning/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/Users/brandomiranda/miniconda3/envs/automl-meta-learning/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/Users/brandomiranda/.vscode/extensions/ms-python.python-2020.2.63072/pythonFiles/lib/python/new_ptvsd/wheels/ptvsd/__main__.py", line 45, in <module>
cli.main()
File "/Users/brandomiranda/.vscode/extensions/ms-python.python-2020.2.63072/pythonFiles/lib/python/new_ptvsd/wheels/ptvsd/../ptvsd/server/cli.py", line 361, in main
run()
File "/Users/brandomiranda/.vscode/extensions/ms-python.python-2020.2.63072/pythonFiles/lib/python/new_ptvsd/wheels/ptvsd/../ptvsd/server/cli.py", line 226, in run_module
log.exception("Error determining module path for sys.argv")
/Users/brandomiranda/miniconda3/envs/automl-meta-learning/bin/python: Error while finding module specification for '/Users/brandomiranda/automl-meta-learning/automl/experiments/experiments_model_optimization.py' (ModuleNotFoundError: No module named '/Users/brandomiranda/automl-meta-learning/automl/experiments/experiments_model_optimization')
dann habe ich versucht, die Datei auszuführen, die es manuell beschwert und es läuft gut ...
(automl-meta-learning) brandomiranda~/automl-meta-learning/automl/experiments ❯ python /Users/brandomiranda/automl-meta-learning/automl/experiments/experiments_model_optimization.py
--> main in differentiable SGD
-------> Inside Experiment Code <--------
---> hostname:
device = cpu
Files already downloaded and verified
Files already downloaded and verified
Files already downloaded and verified
Selbst wenn ich den Mauszeiger über den Pfadnamen bewege und mit command + click
darauf klicke, komme ich aus dem VS-Code zum Pfad. Welches scheint bizzare. Nur irgendwie funktioniert es nicht, wenn ich es im Debugger-Modus ausführe. Warum?
Launch.json
{
// 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: Experiments Protype1",
"type": "python",
"request": "launch",
"module": "${workspaceFolder}/automl/experiments/experiments_model_optimization.py" // ~/automl-meta-learning/automl/experiments/experiments_model_optimization.py
},
{
"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"
}
]
}
Cross-posted:
quelle
launch.json
Dateiinhalt. Insbesondere sind dieprogram
undpythonPath
-Werte in diesem Fall wichtig.Antworten:
Sie verwenden
module
anstelle vonprogram
inlaunch.json
. Wenn Sie ein Modul verwenden, müssen Sie nur den Namen des Moduls \ Untermoduls übergeben, nicht den gesamten Pfad. Visual Studio lädt dann das angegebene Modul und führt seine__main__.py
Datei aus.Dies wäre die richtige Eingabe, vorausgesetzt, automl ist ein Modul und Experimente ist ein Submodul:
"module": "automl.experiments"
Wenn Sie direkt auf Ihr Skript verweisen möchten, können Sie den zuvor verwendeten Pfad verwenden und einfach
module
zuprogram
:"program": "${workspaceFolder}/automl/experiments/experiments_model_optimization.py"
quelle
~/foo/main.py
, wie kann ich VS-Code ausfüllen lassen~
?${env:HOME}
. Ich würde die Verwendung empfehlen${workspaceFolder}
, da Sie damit Ihr "Projekt" in einen beliebigen Ordner verschieben können. Als Referenz: code.visualstudio.com/docs/editor/variables-reference$
Blicke einschließen !Das habe ich also getan. Sobald ich die
launch.json
Datei geöffnet habe, gehe ich zur Registerkarte Debugger auf der linken Seite:dann habe ich auf geklickt
Add configuration
und dann dielaunch.json
Datei geöffnet. Dann gibt es unten rechts einen blauen Boden mitAdd Configuration
:dann füllte ich den Stex aus, der nach der Auswahl erschien
Python file
. Der Text, der erschien, war:und ich habe es geändert in:
Dann habe ich sichergestellt, dass ich es im linken Debug-Menü ausgewählt habe, damit jedes Mal, wenn ich es mit der
F5
Verknüpfung ausführte, die richtige Datei ausgeführt wurde, unabhängig davon, wo ich mich im VS-Code befand.Aktuelle Datei:
scheint
${end:HOME}
wichtig zu sein, um nach Hause zu kommen.quelle