当在共享中的某个位置使用打包为可嵌入zip文件打包的python,而在单独的共享中的其他位置使用我的python应用程序(有多个)时,我可以对彼此和与python分开的应用程序进行版本控制。然后,这些应用程序“共享”(使用)相同的python版本(可嵌入的实例)-因此,我只需要为所有应用程序管理一个python版本。
现在我要调试一个应用程序。 (假设在这里:该应用程序在运行时已经可以正常运行了)我使用eclipse和PyDev。创建工作区并将代码作为文件夹链接到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链接启动的,在该链接中,我称为python可嵌入可执行文件,并将该应用程序作为参数传递。因此,双击电源外壳图标足以满足应用程序用户
答案 0 :(得分:0)
我不太了解一件事:您是在Eclipse中启动代码(例如,将debug调试为> Python),并且出现此错误?
您是否正在以某种方式更改PYTHONPATH?
它的工作方式是Eclipse / PyDev将更改PYTHONPATH环境变量以为pydevd
调试器添加所需的路径,但是如果您有一个自定义的Python或zip,那么它将替换或不使用它var,该结果是可以预期的,并且您必须确保PYTHONPATH env var仍受调试器正常工作...