Eu estava seguindo as instruções do site do código VS, mas parecia que nada que eu tentei funcionou.
Criei uma nova configuração conforme necessário, mas sempre que coloco o caminho, ele se recusa a trabalhar no código VS, embora o caminho que o código VS reclama na janela do terminal integrado funcione bem quando eu o chamo manualmente.
O erro que o depurador lança é o seguinte:
(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')
então eu tentei executar o arquivo queixa manualmente e ele funciona muito bem ...
(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
mesmo quando passo o mouse sobre o nome do caminho e clico nele command + click
, ele me leva ao caminho a partir do código VS. O que parece bizarro. Então, de alguma forma, somente quando eu o executo no modo depurador não funciona. Por quê?
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"
}
]
}
Postagem cruzada:
python
visual-studio
vscode-debugger
Charlie Parker
fonte
fonte
launch.json
conteúdo de arquivo atual . Especialmente, os valoresprogram
epythonPath
são importantes neste caso.Respostas:
Você está usando em
module
vez deprogram
emlaunch.json
. Ao usar o módulo, você deve passar apenas o nome do módulo \ sub-módulo, não o caminho inteiro. O Visual Studio carregará o módulo especificado e executará seu__main__.py
arquivo.Esta seria a entrada correta, assumindo que automl é um módulo e experimentos é um submódulo:
"module": "automl.experiments"
Se você deseja apontar diretamente para o seu script, pode usar o caminho que estava usando anteriormente, apenas alterando
module
paraprogram
:"program": "${workspaceFolder}/automl/experiments/experiments_model_optimization.py"
fonte
~/foo/main.py
, como posso preencher o código VS~
?${env:HOME}
. Eu recomendo usar${workspaceFolder}
, pois isso permitirá que você mova seu "projeto" para qualquer pasta que desejar. Para referência: code.visualstudio.com/docs/editor/variables-reference$
!Então foi isso que eu fiz. Depois que abri o
launch.json
arquivo, acesse a guia depurador à esquerda:depois cliquei
Add configuration
e olaunch.json
arquivo foi aberto. Então, no canto inferior direito, há um botão azul comAdd Configuration
:então eu preenchi o stex que apareceu após a seleção
Python file
. O texto que apareceu foi:e eu mudei para:
então, certifiquei-me de selecioná-lo no menu de depuração esquerdo, para que cada vez que o executasse com o
F5
atalho, ele executasse o arquivo certo, independentemente de onde eu estivesse no código VS.Arquivo atual:
parece
${end:HOME}
ser importante para obter o caminho de casa.fonte