Такой подход таит в себе опасность. 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'
Код: Выделить всё
#!/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 и PyDev обрабатывать взаимодействие между виртуальными средами (в частности, активируемыми с помощью pyenv) и кодом Python, управляемым в рабочей области. Кроме того, если есть способ «присоединить» виртуальную среду к рабочей области или к конкретному выполнению кода Python, инкапсулированного в рабочую область, я был бы очень признателен, если бы кто-нибудь указал мне на документацию, в которой это обсуждается.
Подробнее здесь: https://stackoverflow.com/questions/792 ... gin-that-r
Мобильная версия