问题标签 [python-exec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
176 浏览

python - Python Exec没有将完整变量传递给exec shell - 出现工作错误

Python“Exec”命令未在 exec shell 中传递本地值。我认为这应该是一个简单的问题,但似乎所有人都难住了。这是问题的可重复工作版本......我花了一点时间来重新创建一个工作问题(我的文件比这里显示的示例大得多,每个循环最多有 10-dfs,每个 df 通常有 1800 个项目)

在我添加“”之前,EXEC 只传递了“PRODUCT”(与“PRODUCT.AREA”相反["{ind_id}"],然后它也显示了一个错误“ <string> in <module>”。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

当然,这是引发 exec 错误的最后一行。有任何想法吗?你有一个有效的全局或局部变量赋值来修复它吗?等等...谢谢!

0 投票
1 回答
39 浏览

python - 通过函数调用时,Python exec 没有拾取范围

我有一个函数test()应该检查一个字符串是否是一个有效的 Python 文件。(字符串通常是从自述文件中提取的。)exec()在字符串上运行效果很好,除非在这种情况下:

为什么不接受通过函数调用exec()import mathif ,而是在主范围内运行它时工作?如何解决它test()

0 投票
1 回答
55 浏览

python - 在 exec 中使用非本地

为什么下面的代码:

)

给出这个错误:

这是满足文本/代码比率的更多文本。

0 投票
1 回答
267 浏览

python - 在全新的 Python 环境中以编程方式从 Python 中执行 Python 文件

假设我有一个文件script.py位于path = "foo/bar/script.py". 我正在寻找一种在 Python 中script.py通过函数从我的主要 Python 程序中以编程方式执行的方法execute_script()。但是,我有一些要求似乎阻止我采用涉及importlibor的幼稚方法exec()

  • script.py应该在“看起来很新鲜”的 Python 环境中执行,就好像它是通过$ python script.py. 也就是说,应该相应地设置所有相关的全局变量,如、 、__name____file__工作目录,并且尽可能少的信息应该从我的主程序泄漏到文件的执行中。(不过没关系,如果可以通过模块发现它不是直接执行的。)sys.modulessys.pathscript.pyinspect$ python script.py

  • 我需要访问执行的结果,即execute_script()应该返回给定的模块script.py及其所有变量、函数和类。(这可以防止在子进程中启动新的 Python 解释器。)

  • execute_script()必须在内部使用open()才能读入script.py。这样我就可以pyfakefs在单元测试期间使用包来模拟文件系统。(这会阻止涉及 importlib 的简单解决方案。)

  • execute_script()不得(永久)修改我的主程序中的任何全局状态,例如sys.pathor sys.modules

  • 如果可能的话,script.py应该不能影响我的主程序的全局状态。(至少它不应该影响我sys.pathsys.modules主程序。)

  • 我需要能够修改所sys.path看到script.py的。execute_function()因此应该接受一个可选的系统路径列表作为参数。

  • 在执行期间发生的堆栈跟踪和错误处理script.py应该照常工作。(这使得解决方案exec()变得困难。)

  • 该解决方案应尽可能面向未来,并且不依赖于 Python 解释器的实现细节。

我会非常感谢任何想法!

0 投票
0 回答
17 浏览

python - 让 pytest 了解 exec 内置函数

我在下面有一个简单的测试,我用pytest. 它通过内置函数工作exec

pytest(via ipython) 之外运行时,代码可以正常工作。通过运行时pytest,该exec语句似乎没有正确运行。

如何将exec函数作为 a 的一部分运行pytest


版本

0 投票
2 回答
109 浏览

python - 带有产生 NameError 的函数链的 Python exec

考虑以下脚本,它用于exec定义两个函数,其中一个调用另一个:

我希望看到以下输出:

但相反,我得到以下输出+堆栈跟踪:

有趣的是,如果将 的内容run_code移到模块级别,则可以正常工作。但是,如果我随后替换globals()locals()使用新的空字典,它会再次中断。我也知道放入def foo' bars body 会使其工作。

为什么会发生此错误,正确的解决方法是什么?

(我知道这exec通常是不受欢迎的。我使用它是有充分理由的。)

0 投票
0 回答
13 浏览

python - 我不明白 Python 3 exec 是如何工作的

结果NameError: name 'nDns' is not defined。当我更改它时locals()globals()它可以工作,但我真的不希望它写入全局变量。它必须保持在函数的范围内。如何?

0 投票
1 回答
172 浏览

python - 将 exec 进程中的标准输出存储到变量中

我目前有以下代码os.execv()用于执行某种过程。例如:

在你告诉我使用之前subprocess,请注意(出于分配目的),我应该坚持这种通过 Python 运行 bash 命令的特殊方法。

我想做类似的事情:

有谁知道我如何捕获从os.execv()命令派生的输出(位于子进程中)并将其存储在变量中(也许将其返回给父进程)?

0 投票
1 回答
382 浏览

python - Pyinstaller 输出 .exe 立即关闭

我正在尝试使用 Pyinstaller 将 python 文件转换为可执行文件。该文件调用不同的模块以及不同的库。执行命令时,pyinstaller --onefile instabot.py会生成一个 instabot.exe 文件并按预期放置到 dict 文件夹中。 但是,当我尝试运行此类文件时,它会打开终端一秒钟,然后立即关闭它。 我尝试将 .exe 文件留在 dict 文件夹中,以及将其移动到顶级文件夹中,但没有任何效果。即使将 .exe 文件放在与原始 instabot.py 文件相同的级别(因此可以访问所有使用的模块和库),它的行为仍然相同......我也尝试删除 --onefile 选项,但是结果是一样的。

我在 Windows 10 机器上运行该命令。Pyinstaller 是最新版本(我用过pip install -U pyinstaller

不幸的是,我没有更多关于为什么会出现这个问题的意见......

要复制我面临的问题,您可以关闭此处链接的 git 存储库:https ://github.com/davidwickerhf/desktop-instabot 然后,在虚拟环境中,将模块安装在 requirements.txt 文件中(pip install -r requirements

任何帮助、建议或问题将不胜感激。

如果需要任何进一步的信息,我很乐意提供 - 我目前不确定我可以提供哪些更有用的信息。

编辑 2 当我运行命令pyinstaller --windowed --onefile --debug=all instabot.py时,打开 .exe 文件时,我收到错误消息 = 'Failed to execute script pyiboot01_bootstrap'

编辑 1 我运行了命令pyinstaller instabot.py --debug=imports,在执行输出 .exe(在 dist 文件夹内,从终端)时,我收到以下消息:

0 投票
1 回答
100 浏览

python - 在 sympy parse_expr 中处理 Python 保留字?

如果我解析一个包含 的表达式lambda,即使Symbol("lambda")是有效的也会出现错误:

我想允许我的代码的用户以他们喜欢的方式命名他们的变量。有没有办法支持这一点?

如果没有,我可以想办法在保留字前面加上下划线。

如果这很重要,我正在使用 Sympy 1.6。