Запуск приложения Python внутри Eclipse IDE с плагином PyDev, для которого требуется виртуальная среда pyenv.Python

Программы на Python
Ответить
Anonymous
 Запуск приложения Python внутри Eclipse IDE с плагином PyDev, для которого требуется виртуальная среда pyenv.

Сообщение Anonymous »

Я пытаюсь запустить приложение Eclipse IDE с плагином PyDev, чтобы разработать приложение, написанное на Python (называемое SALT). Когда вы запускаете приложение SALT (вне Eclipse), вы сначала должны активировать виртуальную среду pyenv с помощью команды pyenv active . В отдельном вопросе о переполнении стека я задал вопрос, есть ли способ настроить виртуальную среду в Eclipse перед выполнением приложения SALT. Я не получил ответа (прошло 4 дня — выполнение pyenv active до того, как Eclipse с PyDev запустит приложение), поэтому я ищу способ использовать сценарий оболочки для настройки виртуальной среды, а затем вызвать Eclipse.
Такой подход таит в себе опасность. Eclipse написан на Java, и не очевидно, что приложение Python наследует контекст терминального сеанса от приложения Eclipse. Знать это означало бы знать, как Eclipse реализует запуск приложений Python под своим контролем (о чем я ничего не знаю). Если Eclipse разветвляет процесс для запуска приложения Python, вполне возможно, что активация виртуальной среды pyenv, выполненная перед запуском Eclipse, не влияет на выполнение Python (есть существенные доказательства этого, поскольку при отладке SALT в Eclipse/PyDev я получите следующий дамп ошибки:

Код: Выделить всё

0.01s - warning: Debugger speedups using cython not found. Run '"/home/dan/dotpyenv/versions/3.10.15/bin/python3.10" "/home/dan/.var/app/org.eclipse.Java/eclipse/plugins/org.python.pydev.core_12.2.0.202409031913/pysrc/setup_pydevd_cython.py" build_ext --inplace' to build.
pydev debugger: starting (pid: 191)
Traceback (most recent call last):
File "/home/dan/.var/app/org.eclipse.Java/eclipse/plugins/org.python.pydev.core_12.2.0.202409031913/pysrc/pydevd.py", line 3699, in 
main()

... Trace back stuff ...

import distro
ModuleNotFoundError: No module named 'distro'
[ERROR ] An un-handled exception was caught by Salt's global exception handler:
ModuleNotFoundError: No module named 'distro'
То, что модуль «дистрибутив» не найден, предполагает, что виртуальная среда, в которой работает SALT, не установлена, хотя сценарий bash сначала активирует ее перед вызовом Eclipse. Для справки, сценарий:

Код: Выделить всё

#!/bin/bash
if [ -z "$1" ]
then
echo "You must supply the name of an activation virtual environment"
exit 1
fi

success=$(pyenv activate $1)

if [[ $success -ne 0 ]]
then
echo "The supplied virtual environment does not exist"
exit 1
fi

if [ -z "$2" ]
then
(/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=eclipse --file-forwarding org.eclipse.Java &)
else
(/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=eclipse -data $2 --file-forwarding org.eclipse.Java &)
fi

Я действительно запутался, особенно потому, что я ничего не понимаю в плоском пакете и хотя Eclipse правильно выполняется из этого сценария bash (из предложения then оператора if ), я не уверен, что команда в предложении else написана правильно (особенно аргумент -data $2). Кроме того, как указано выше, запуск отладчика в коде Python генерирует заданную обратную трассировку ошибок.
В любом случае, причина, по которой я публикую этот вопрос, состоит в том, чтобы попросить некоторую помощь в понимании того, как Eclipse и PyDev обрабатывать взаимодействие между виртуальными средами (в частности, активируемыми с помощью pyenv) и кодом Python, управляемым в рабочей области. Кроме того, если есть способ «присоединить» виртуальную среду к рабочей области или к конкретному выполнению кода Python, инкапсулированного в рабочую область, я был бы очень признателен, если бы кто-нибудь указал мне на документацию, в которой это обсуждается.

Подробнее здесь: https://stackoverflow.com/questions/792 ... gin-that-r
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»