Терминал кода Visual Studio не использует правильный интерпретатор Python

У меня есть код Visual Studio (версия 1.9), работающий на компьютере с Windows 10. Я хочу использовать интерпретатор Python от ESRI и выбрал его для этого изображения:

После этого, если я использую кнопку «Выполнить» (стрелка вправо) в правом верхнем углу файла Python, тогда выбирается правильный интерпретатор и никаких проблем. Однако, если я запущу файл Python, используя команды, подобные этому экрану:

затем выбирается какой-нибудь интерпретатор Python из Windows. Обратите внимание: ошибка, которую вы видите на этом изображении файла не найден, является ложной ошибкой, поскольку файл на самом деле не существует, но это подтверждает, что Терминал использует неправильный интерпретатор, в отличие от кнопки «Выполнить».

Я попытался создать новую среду и выбрал правильный интерпретатор, но терминал все равно использует неправильный интерпретатор. Терминал показывает правильный интерпретатор, как на этом изображении:

Я предпочитаю запускать скрипт Python с помощью терминала, используя сочетания клавиш вместо кнопки «Выполнить» в IDE. Что я могу сделать, чтобы решить эту проблему?

Используйте полный путь к предпочитаемой версии, создайте и активируйте виртуальную среду с предпочитаемой версией или добавьте псевдоним к предпочитаемой версии.

Anonymous 27.06.2024 18:57

Я знаю, что могу использовать полный путь в Терминале, но не хочу. Раньше у меня не было проблем с использованием разных интерпретаторов в Терминале, но на этот раз я не знаю, что происходит. Что касается Virtual Env, я уже пробовал этот маршрут и думаю, что он загрузился, но, как я уже сказал, проблема все еще остается. Возможно, я тогда сделал что-то не так, но я новичок в этом. Спасибо.

IrfanClemson 27.06.2024 18:59

Если вы сами набираете команду python, то единственное, что имеет значение, — это ваш ПУТЬ. Настройки интерпретатора VSCode имеют значение только тогда, когда VSCode запускает программу.

jasonharper 27.06.2024 19:09

@jasonharper Хорошая информация! Я до сих пор думаю, что раньше использовал другой интерпретатор в VS Code, но могу ошибаться; это был корпоративный компьютер, на котором можно было предварительно настроить различные интерпретаторы Python. Это мой собственный ноутбук. Спасибо!

IrfanClemson 27.06.2024 19:12

Мне только что удалось загрузить новую среду, которая указывала на правильный интерпретатор, и на этот раз запуск Python filename.py действительно показывает правильный интерпретатор, так что это прогресс! Все еще ошибка, и я изучаю это!

IrfanClemson 27.06.2024 19:16
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
5
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вот как я нашел решение:

  1. Создал виртуальную среду в Visual Studio Code.
  2. Направил среду в VS Code на интерпретатор ESRI Python в папке Program Files.
  3. Попробовал «Python myfilename.py» в терминале, но все равно не смог найти необходимый модуль ESRI, указанный в файле .py на шаге 2. Это подсказало мне, что что-то не так.
  4. Открыл файл pyvenv.cfg в рабочей области VS Code, изменил include-system-site-packages = false на true и сохранил файл.
  5. Попробовал «Python myfilename.py», и на этот раз модуль ESRI был найден. Тем не менее, я получаю предупреждение типа arcpy expects to run within a Conda environment, но думаю, что пока могу научиться с этим жить!

ОБНОВЛЕНИЕ: Избавился от предупреждения:

Откройте C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\__init__.py от имени администратора в Nodepad++ и закомментируйте две строки:

#print(msg.format(install_dir))

#warnings.warn("arcpy expects to run within a Conda environment", RuntimeWarning)

Хт кто-нибудь!

Вы можете попробовать эти пункты и посмотреть, решена ли проблема.

  1. Используйте ярлык Ctrl+,, перейдите в «Настройки» и введите python.defaultInterpreterPath. Посмотрите, является ли указанный путь правильным для интерпретатора Python ESRI.
  2. Запустите $env:Path += ";C:\path\to\your\python\directory" в терминале. Затем введите свой путь, обратите внимание, что он работает только в текущем терминале.
  3. Если вы используете виртуальную среду, вы можете попробовать cd перейти в свой каталог с помощью команды .venv\Scripts\Activate.
  4. Используйте горячую клавишу Ctrl+Shift+P, чтобы открыть панель команд, и выберите команду Extensions: Clear Extended Cache на панели команд, чтобы очистить данные расширенного кэша.

Привет спасибо. У меня уже есть решение/ответ. Но спасибо. Я думаю о вашем предложении: №3 мог бы сработать, и я думал об этом, но я не хотел менять среду Windows. №1: Я уже это подтвердил. #3: Нет необходимости, потому что мой .venv уже активен, за исключением того, что в соответствии с моим ответом его нужно немного подправить. № 4: Я думаю, что это не нужно и не имеет значения. Какое бы решение я ни нашел, оно было обходным. Работает для меня. Мне нужно двигаться дальше. Но спасибо. Я дам тебе Репутацию!

IrfanClemson 28.06.2024 15:13

Другие вопросы по теме