如何在不向 python 路径添加 eclipse insights 的情况下使用具有 python 可嵌入(zip 文件)的 PyDev 调试器?
How to use PyDev debugger with python embeddable (zip file) without adding eclipse insights to the python path?
当使用 python 打包为可嵌入的 zip 文件时,在共享的某处和我的 python 应用程序(有多个)在其他地方的单独共享上,我可以对应用程序进行版本控制,并且来自 python。这些应用程序然后 "share"(使用)相同的 python 版本(可嵌入实例) - 所以我只需要为我的所有应用程序管理一个 python 版本。
现在我想调试一个应用程序。 (这里假设:应用程序在 运行 时已经可以正常运行)我使用 eclipse 和 PyDev。在创建工作区并将代码作为文件夹 link 放入 eclipse 工作区中的项目后,我告诉 PyDev 在哪里可以找到我的 python 可嵌入解释器以及要启动哪个应用程序。
当我开始调试时,调试器告诉我:
Traceback (most recent call last):
File "C:\eclipse\plugins\org.python.pydev.core_7.1.0.201902031515\pysrc\pydevd.py", line 19, in <module>
from _pydev_bundle import fix_getpass
ModuleNotFoundError: No module named '_pydev_bundle'
所以调试器没有找到自己的模块?
现在我将 PyDev 源的路径添加到文件
中可嵌入 python 解释器的 PYTHONPATH
python36._pth
如下:
C:\eclipse\plugins\org.python.pydev.core_7.1.0.201902031515\pysrc
(是的,路径不是相对的)
(旁注:我必须在 eclipse 中重新配置解释器以使 pydev 识别路径更改)
这样做可以解决该问题,我可以调试该应用程序。 (忽略淹没我的控制台的调试器警告)
有人能告诉我为什么我需要将该路径添加到我的 python 可嵌入程序中吗?它应该尽可能独立?我可以在其他地方设置吗?我已经尝试将源路径添加到 eclipse 项目 PYTHONPATH 和 eclipse 解释器 PYTHONPATH 但没有成功。
PS:我的 python 应该独立于应用程序,以便在它们之间共享它并能够交换它(全新升级到更新版本)。
这些应用程序使用 Windows power shell link 启动,我在其中调用我的 python 可嵌入可执行文件并将该应用程序作为参数传递。所以双击电源 shell 图标对于应用程序用户来说就足够了
我真的不明白一件事:你从 Eclipse 中启动你的代码(比如调试 > Python)并且它给出了那个错误?
您是否正在以某种方式更改 PYTHONPATH?
它的工作方式是 Eclipse/PyDev 将更改 PYTHONPATH 环境变量以添加 pydevd
调试器所需的路径,但是如果您有自定义 Python 或 zip然后替换或不使用该 var,结果是预期的,您必须确保 PYTHONPATH env var 仍然受尊重,调试器才能工作...
当使用 python 打包为可嵌入的 zip 文件时,在共享的某处和我的 python 应用程序(有多个)在其他地方的单独共享上,我可以对应用程序进行版本控制,并且来自 python。这些应用程序然后 "share"(使用)相同的 python 版本(可嵌入实例) - 所以我只需要为我的所有应用程序管理一个 python 版本。
现在我想调试一个应用程序。 (这里假设:应用程序在 运行 时已经可以正常运行)我使用 eclipse 和 PyDev。在创建工作区并将代码作为文件夹 link 放入 eclipse 工作区中的项目后,我告诉 PyDev 在哪里可以找到我的 python 可嵌入解释器以及要启动哪个应用程序。
当我开始调试时,调试器告诉我:
Traceback (most recent call last):
File "C:\eclipse\plugins\org.python.pydev.core_7.1.0.201902031515\pysrc\pydevd.py", line 19, in <module>
from _pydev_bundle import fix_getpass
ModuleNotFoundError: No module named '_pydev_bundle'
所以调试器没有找到自己的模块? 现在我将 PyDev 源的路径添加到文件
中可嵌入 python 解释器的 PYTHONPATHpython36._pth
如下:
C:\eclipse\plugins\org.python.pydev.core_7.1.0.201902031515\pysrc
(是的,路径不是相对的) (旁注:我必须在 eclipse 中重新配置解释器以使 pydev 识别路径更改)
这样做可以解决该问题,我可以调试该应用程序。 (忽略淹没我的控制台的调试器警告)
有人能告诉我为什么我需要将该路径添加到我的 python 可嵌入程序中吗?它应该尽可能独立?我可以在其他地方设置吗?我已经尝试将源路径添加到 eclipse 项目 PYTHONPATH 和 eclipse 解释器 PYTHONPATH 但没有成功。
PS:我的 python 应该独立于应用程序,以便在它们之间共享它并能够交换它(全新升级到更新版本)。 这些应用程序使用 Windows power shell link 启动,我在其中调用我的 python 可嵌入可执行文件并将该应用程序作为参数传递。所以双击电源 shell 图标对于应用程序用户来说就足够了
我真的不明白一件事:你从 Eclipse 中启动你的代码(比如调试 > Python)并且它给出了那个错误?
您是否正在以某种方式更改 PYTHONPATH?
它的工作方式是 Eclipse/PyDev 将更改 PYTHONPATH 环境变量以添加 pydevd
调试器所需的路径,但是如果您有自定义 Python 或 zip然后替换或不使用该 var,结果是预期的,您必须确保 PYTHONPATH env var 仍然受尊重,调试器才能工作...