如何从您的脚本执行另一个 python 脚本并能够进行调试?

2024-03-02

您有包装器 python 脚本正在调用另一个 python 脚本,当前正在使用os.system('python another.py some-params').

您希望能够调试这两个脚本,并且如果您使用os.system()您将丢失调试器,因此使用相同的解释器加载第二个脚本而不是启动另一个脚本确实有意义。

import没有达到预期的效果,因为它没有运行__main__.

其他变体,例如exec() or runpy接缝错过argv参数。

您认为这个问题的解决方案是什么?

我正在寻找一种不需要您修改的解决方案another.py脚本。可能这需要修改sys.argv在执行之前。


到目前为止,我找到了一个仅适用于 Python 2.7+ 的解决方案(runpy.run_path() 是在 Python 2.7 中引入的)。

如果您能找到一个适用于 2.6(甚至 2.5)的版本,欢迎您发布它。

import runpy, sys
saved_argv = sys.argv
... # patch sys.argv[1:] and load new command line parameters
# run_path() does change only sys.argv[0] but restores it
runpy.run_path('another.py', run_name="__main__")
sys.argv = saved_argv # restore sys.argv
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从您的脚本执行另一个 python 脚本并能够进行调试? 的相关文章

随机推荐

  • 将 Pajek 数据集读入 Networkx

    我正在寻找将 Pajek 数据集转换为 networkxGraph 数据集来自哥斯达黎加家庭关系 http vlado fmf uni lj si pub networks data esna SanJuanSur htm 我正在使用非常方
  • 如何忽略异常并完成尝试

    所以我一直在奋斗这个问题 https stackoverflow com questions 14885288 io exception error when using serialport open大约一周了 我想我知道这个问题 但我不
  • Twig 和自动转义

    我正在学习 Symfony2 目前 我正在尝试在树枝模板中渲染表单标签 该标签包含一个 html 标签 该标签在我的 twig 文件中未正确呈现 下面是创建表单字段的代码段 builder gt add zipcode integer ar
  • Avalon 中的大写编辑

    我正在使用 AvalonEdit 编写电影脚本编辑器 我扩展了 DocumentLine 类以具有 Type 属性 其值表示 字符 对话行 等 我希望脚本中某种类型的文档行以大写形式编写 例如字符名称 渲染管道中是否有一个扩展点可以让我获取
  • 如何在 zend Framework 2 中返回对象数组?

    我正在 zf2 中进行查询 然后得到一个object Zend Db ResultSet HydratingResultSet 我必须foreach上 以便到达属性 我想默认获得一个对象数组 这是我的一些代码 factory address
  • clang 不编译我的代码,但 g++ 可以

    有人可以帮我解决这个代码吗 include
  • NodeJS 中的 HTTPS 请求

    我正在尝试编写一个 NodeJS 应用程序 它将使用 https 包中的请求方法与 OpenShift REST API 进行通信 这是代码 var https require https var options host openshif
  • 使用 ggforce 创建跳过节点的 Sankey 图

    I would like to use the ggforce package in R to create a Sankey diagram because I prefer the look of the parallel sets p
  • Vertx FileUpload上传不带扩展名的文件

    我在用vertx web并尝试上传文件 这是我的代码 router route handler BodyHandler create setUploadsDirectory some path uploads router post api
  • pandas 计算两个零之间不为零的值的数量

    我有以下数据框 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 0 你如何获得一个看起来像这样的数据框 0 0 0 4 0 0 4 3 0 4 3 2 4 3 2 0 0 0 0 2
  • 将tiny int 转换为int 时出错

    该错误看起来是由于在服务器上安装框架 4 5 引起的 尽管该项目的目标仍然是 4 0 4 5 取代了 CLR 看起来它在将tinyint 类型的对象拆箱为 int 方面发生了变化 这在 4 0 中可以工作 但安装 4 5 后就不行了 请在回
  • PHP72 MongoDB 驱动程序与 OSX 上的 Homebrew

    我有一个问题可能表明我对 Homebrew 与 MongoDB 存在误解 我正在 Mac OSX 10 12 6 Sierra 上运行带有 PHP 7 2 1 我想使用 的 XAMPP 版本 我安装了 MongoDB 并创建了配置和数据存储
  • Apache HttpClient 4.3 SocketConfig.getSoTimeout() 与 RequestConfig.getSocketTimeout()

    当建造一个CloseableHttpClient在 Apache HttpClient 4 3 中 我可以使用 SocketConfig custom setSoTimeout soTimeout build 并将其发送至setDefaul
  • 计算变换球体的 AABB

    我有一个在对象空间中由中心点和半径表示的球体 使用可能包括缩放 旋转和平移的变换矩阵将球体变换为世界空间 我需要为世界空间中的球体构建一个轴对齐的边界框 但我不知道该怎么做 这是我目前的方法 适用于某些情况 public void comp
  • Ruby Savon Gem 更改日志记录配置

    我尝试在针对 WSDL 运行 Savon 时更改其日志记录 但更改日志记录级别未成功 我阅读了文档 http rubiii github com savon global configuration http rubiii github c
  • 如果使用相同的数组作为两个参数,strcat() 会崩溃

    char r 40 strcpy r abcdef strcat r r 我的程序在第三行崩溃了 替换 strcat r r 通过 strcat r abcdef 不过工作正常 这是为什么 根据strcat 3 http linux die
  • Django 管理模板覆盖不起作用

    姜戈 1 6 11 应用程序结构如下所示 my project new app templates 在我的配置中 TEMPLATE ROOT os path join BASE ROOT templates TEMPLATE DIRS TE
  • 匹配枚举引用的语法是什么?

    似乎 Rust 的每一份介绍性文档枚举类型 https doc rust lang org book first edition enums html解释如何match https doc rust lang org book first
  • 如何将S3中的10,000个文件公开

    我的存储桶中有一个文件夹 其中包含 10 000 个文件 似乎没有办法立即上传并公开它们 所以我把它们全部上传了 它们是私人的 我需要将它们全部公开 我尝试过 aws 控制台 它只是给出一个错误 对于文件较少的文件夹工作正常 我尝试过在 F
  • 如何从您的脚本执行另一个 python 脚本并能够进行调试?

    您有包装器 python 脚本正在调用另一个 python 脚本 当前正在使用os system python another py some params 您希望能够调试这两个脚本 并且如果您使用os system 您将丢失调试器 因此使