Python сон не работает в среде Conda в VS Code - PullRequest
0 голосов
/ 09 января 2020

У меня есть следующий фрагмент кода

import time
print("Printed immediately.")
time.sleep(2.4)
print("Printed after 2.4 seconds.")

В VS Code: Conda Environment он не печатает сначала оператор 01, а оператор 02 после задержки 2,4 с. Вместо этого оба печатаются одновременно с задержкой 2,4 с. Эта проблема не видна в собственной версии python (Python 3.x с ОС Ma c). Как решить эту проблему?

ps Я обнаружил, что эта ошибка связана с выполнением команды. Команда по умолчанию, которая выполняется

conda run -n env_name python "path/test_print.py"

, если она изменяется следующим образом, печатается с задержкой

python "path/test_print.py"

как изменить команду выполнения по умолчанию в VS Code?

Ответы [ 2 ]

1 голос
/ 10 января 2020

Я думаю, что основная проблема здесь заключается в том, что "conda run" буферизует стандартный вывод до завершения команды - см .: https://github.com/conda/conda/issues/9412 - но в то же время я предполагаю, что единственным обходным решением является изменение исполняемой команды , Я думаю, что команда запуска по умолчанию изменилась в самой последней версии (2020.1.57204) VS Code python, поскольку у меня не было таких проблем до этого.

Я обнаружил, что изменение VSCode Python настройка расширения для condaPath со значения по умолчанию (пусто) на что-то недействительно - например, condaX - приводит к изменению команды запуска с "conda run -n ..." на "& C: / ProgramData / Anaconda3 / envs / tf-gpu / python .exe full_path_to_py_file.py "- которая работает в соответствующей среде conda (в моем случае tf-gpu) без проблемы буферизации ввода-вывода. (Я работаю на Windows, очевидно.)

Я ранее настроил запуск conda, используя https://medium.com/@udiyosovzon / как активировать conda-environment-in-vs-code-ce599497f20d и я не уверен, что какое-либо из этих изменений имело какое-либо отношение к проблеме, но с тех пор я переустановил расширение VSCode python и не могу найти никаких следов этих изменений, поэтому я сомневаюсь, что любое из них необходимо для Изменение condaPath для работы, как я описал.

0 голосов
/ 09 января 2020

Я предполагаю, что вы не используете виртуальную среду в нативном python, вы можете сделать это следующим образом:

  1. Откройте терминал в VS Code (или используйте терминал ОС)
  2. Предполагается, что значение по умолчанию python связано с python2, введите which python3. Вы получите что-то вроде /usr/bin/python3
  3. Откройте пользовательские настройки VS Code в папке проекта, в которой вы находитесь. Если ее нет, создайте ее: .vscode/settings.json.
  4. Введите и сохраните
{
    "python.pythonPath": "/usr/bin/python3"
}

Или, если вы хотите изменить его глобально, сделайте это в файле настроек -> настройки -> настройки и найдите python путь и сделайте его /usr/bin/python3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...