【问题标题】:how to debug python package after git clone without running the setup.py如何在不运行 setup.py 的情况下在 git clone 后调试 python 包
【发布时间】:2013-11-24 22:55:14
【问题描述】:

我已经克隆了一个 git 存储库,并且我已经运行了安装包的 setup.py。我有足够的经验知道如何将 ipdb.set_trace() 插入到我想开始调试的代码行中。我还没有理解如何运行克隆的代码,使其不会从 setup.py 创建的二进制文件中运行,并且据我所知,然后编译和不可触碰。

有人可以说明如何以这种方式执行 python 包吗?

【问题讨论】:

  • 你说的是具体的包吗? setup.py 可以触发 C/C++/其他代码编译。
  • 特别是 Salt,它是用 Python 编写的。

标签: python git debugging


【解决方案1】:

只是一般的行动过程。

  1. 我在 Ubuntu 13.10 和 virtualenv 中

    virtualenv salt-test --system-site-packages
    

    由于一些bugs after installation of M2Crypto inside virtualenv,我们需要--system-site-packages

  2. 先决条件:

    apt-get install swig libssl-dev
    
  3. git clone https://github.com/saltstack/salt.git

  4. cd salt
  5. pip install -r requirements.txt
  6. export PYTHONPATH=$PYTHONPATH:/path/to/salt
  7. 现在我们可以运行主守护进程:./scripts/salt-master -l debug

你会看到很多输出,它会提示你需要创建什么才能正确运行 master。

注意:安装后我必须在root下激活virtualenv才能启动master

【讨论】:

  • 在 setup.py 运行时有一个包含二进制文件内容的脚本目录是否标准?
  • 我不明白你的问题。脚本文件夹中有帮助脚本/程序。它可能包含任何东西。尝试用文本编辑器打开scripts/salt-master,你会看到python代码。
  • 我要问的是我可以将此过程应用于其他python程序吗?在 python 中,有一个包含在 setup.py 执行后可以运行的命令的脚本目录是标准的吗?我试图了解 setup.py 运行后命令的位置,以及 python 中是否有标准做法。
  • 嗯,是的,但不是所有人。如果需要构建 python 包,可以通过调用python setup.py build 将其存档。另一方面,可能没有requirements.txt。有时setup.py 脚本可能会……一见钟情。所以基本上你只需要两件事:满足你打包和构建python模块的要求。之后,您可以将您的包添加到PYTHONPATH 并使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
  • 1970-01-01
  • 2018-05-06
  • 2018-08-06
相关资源
最近更新 更多