Я использую Cython, и у меня проблема с некоторыми процессами Python, блокирующими файлы *.pyd, которые я хочу построить снова после некоторого редактирования. Я сообщаю здесь свой анализ перед самим вопросом.

Прежде всего, я открываю диспетчер задач, чтобы проверить ситуацию, а процесс Python не запущен. Затем я запускаю Visual Studio Code и открываю папку Python без открытых файлов Python в окне редактора. По-прежнему не запущен процесс Python.

На этом этапе я открываю в редакторе файл .pyx, который распознается как код Python (я настроил код Visual Studio для этого, поскольку знаю, что использую Cython). На этом этапе в диспетчере задач появляется несколько процессов Python, вероятно, из-за внутренних функций кода Visual Studio, таких как анализ кода и т. Д.

Теперь предположим, что я внес свои изменения и из своего venv хочу запустить:

python setup_mycode.py build_ext --inplace

Который должен перезаписывать mycode.pyd, но он заблокирован блокировкой файла из-за одного из вышеупомянутых процессов Python. Для его разблокировки недостаточно закрыть все открытые файлы в редакторе. У меня есть только две возможности:

  • закрытие всей папки из Visual Studio Code
  • убийство процесса Python из диспетчера задач

Есть ли более элегантное решение?

Я также исследовал проблемы с расширением Python на github и обнаружил, что выгружает / останавливает загрузку расширения проблема, которая была закрыта в пользу открытого запроса функции в VS Code (последний общий запрос функции на самом деле не то, о чем я прошу здесь: я могу захотеть выгрузить расширение в определенный момент, если оно мешает мне не создавать файл Cython, но не настраивать рабочую область с отключенным расширением, поскольку это папка Python, и расширение имело бы смысл, когда я редактирую, отключение его в первую очередь нарушит цель использования кода Visual Studio вместо , скажем, Блокнот ++).

0
Giulio 12 Фев 2021 в 13:10

1 ответ

Лучший ответ

Решено путем установки и настройки Pylance в качестве языкового сервера по умолчанию.

Соответствующее различие здесь заключается в том, что при открытии файла Python в редакторе я вижу несколько процессов Python в диспетчере задач, которые запускаются и завершаются сами по себе через несколько секунд .

0
Giulio 12 Фев 2021 в 21:18