【问题标题】:Best way to debug Python for WinPE为 WinPE 调试 Python 的最佳方法
【发布时间】:2017-02-18 00:18:03
【问题描述】:

我正在开发应用程序来部署 Windows 操作系统和一些包含驱动程序的软件。此应用程序旨在在 WinPE(Windows 预安装环境)中工作,我从笔记本电脑的 USB 记忆棒或 VM 的 VHD 启动。对于开发,我使用安装在桌面 Windows 7 上的 IDE (PyCharm)。 但是在台式电脑上写代码,再把它复制到usb或VHD上,然后在笔记本电脑或VM上运行代码,却无法调试它,真的很不舒服。我发现 Vagrant 可以帮助我在 VM 中运行代码,但无法在 WinPE 中直接安装 SSH。

还有人可以推荐吗?

【问题讨论】:

    标签: debugging ssh vagrant pycharm winpe


    【解决方案1】:

    只找到了这样一个解决方案: 1. 共享您的项目目录以确保桌面和远程代码完全相等。 2. 确保远程机器(或 VM)可以 ping 您安装了 PyCharm 的台式电脑。 3. 按照 PyCharm 说明使用其 pydev.egg 进行远程调试。

    这不是很方便,因为每次你想再次调试应用程序时,你都应该在远程机器或虚拟机上重新启动应用程序。 PyCharm 远程调试中还有一个错误:如果您在桌面操作系统中使用西里尔语言环境,您可能会遇到路径映射错误。所以目前我无法让它与断点一起正常工作。

    这是我的调试代码:

    from os import system as sys_call
    import os
    import sys
    
    debug_egg_dir = "PyCharm\\debug-eggs\\"
    debug_egg_name = "pycharm-debug-py3k.egg"
    python_dir = os.path.dirname(sys.executable)
    
    PORT = 15999
    
    
    def connect(server):
        if sys_call("ping -n 1 " + server + ">nul") != 0:
            raise ConnectionError("PyCharm Debug Server ({}) is not available".format(server))
    
        try:
            sys.path.append(python_dir + "\\" + debug_egg_name)
            import pydevd
            pydevd.settrace(server, port=PORT, stdoutToServer=True, stderrToServer=True, suspend=False)
    
        except ImportError:
            raise FileNotFoundError("Copy file {0}{1} into {2}".format(
                debug_egg_dir,
                debug_egg_name,
                python_dir
            ))
    
        except Exception as e:
            raise e
    

    【讨论】:

      猜你喜欢
      • 2010-09-26
      • 2015-04-30
      • 1970-01-01
      • 2019-08-03
      • 2011-03-19
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多