问题标签 [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.
python - Python Exec没有将完整变量传递给exec shell - 出现工作错误
Python“Exec”命令未在 exec shell 中传递本地值。我认为这应该是一个简单的问题,但似乎所有人都难住了。这是问题的可重复工作版本......我花了一点时间来重新创建一个工作问题(我的文件比这里显示的示例大得多,每个循环最多有 10-dfs,每个 df 通常有 1800 个项目)
在我添加“”之前,EXEC 只传递了“PRODUCT”(与“PRODUCT.AREA”相反["{ind_id}"]
,然后它也显示了一个错误“ <string> in <module>
”。
当然,这是引发 exec 错误的最后一行。有任何想法吗?你有一个有效的全局或局部变量赋值来修复它吗?等等...谢谢!
python - 通过函数调用时,Python exec 没有拾取范围
我有一个函数test()
应该检查一个字符串是否是一个有效的 Python 文件。(字符串通常是从自述文件中提取的。)exec()
在字符串上运行效果很好,除非在这种情况下:
为什么不接受通过函数调用exec()
的import math
if ,而是在主范围内运行它时工作?如何解决它test()
?
python - 在 exec 中使用非本地
为什么下面的代码:
)
给出这个错误:
这是满足文本/代码比率的更多文本。
python - 在全新的 Python 环境中以编程方式从 Python 中执行 Python 文件
假设我有一个文件script.py
位于path = "foo/bar/script.py"
. 我正在寻找一种在 Python 中script.py
通过函数从我的主要 Python 程序中以编程方式执行的方法execute_script()
。但是,我有一些要求似乎阻止我采用涉及importlib
or的幼稚方法exec()
:
script.py
应该在“看起来很新鲜”的 Python 环境中执行,就好像它是通过$ python script.py
. 也就是说,应该相应地设置所有相关的全局变量,如、 、__name__
和__file__
工作目录,并且尽可能少的信息应该从我的主程序泄漏到文件的执行中。(不过没关系,如果可以通过模块发现它不是直接执行的。)sys.modules
sys.path
script.py
inspect
$ python script.py
我需要访问执行的结果,即
execute_script()
应该返回给定的模块script.py
及其所有变量、函数和类。(这可以防止在子进程中启动新的 Python 解释器。)execute_script()
必须在内部使用open()
才能读入script.py
。这样我就可以pyfakefs
在单元测试期间使用包来模拟文件系统。(这会阻止涉及 importlib 的简单解决方案。)execute_script()
不得(永久)修改我的主程序中的任何全局状态,例如sys.path
orsys.modules
。如果可能的话,
script.py
应该不能影响我的主程序的全局状态。(至少它不应该影响我sys.path
的sys.modules
主程序。)我需要能够修改所
sys.path
看到script.py
的。execute_function()
因此应该接受一个可选的系统路径列表作为参数。在执行期间发生的堆栈跟踪和错误处理
script.py
应该照常工作。(这使得解决方案exec()
变得困难。)该解决方案应尽可能面向未来,并且不依赖于 Python 解释器的实现细节。
我会非常感谢任何想法!
python - 让 pytest 了解 exec 内置函数
我在下面有一个简单的测试,我用pytest
. 它通过内置函数工作exec
:
在pytest
(via ipython
) 之外运行时,代码可以正常工作。通过运行时pytest
,该exec
语句似乎没有正确运行。
如何将exec
函数作为 a 的一部分运行pytest
?
版本
python - 带有产生 NameError 的函数链的 Python exec
考虑以下脚本,它用于exec
定义两个函数,其中一个调用另一个:
我希望看到以下输出:
但相反,我得到以下输出+堆栈跟踪:
有趣的是,如果将 的内容run_code
移到模块级别,则可以正常工作。但是,如果我随后替换globals()
或locals()
使用新的空字典,它会再次中断。我也知道放入def foo
' bar
s body 会使其工作。
为什么会发生此错误,正确的解决方法是什么?
(我知道这exec
通常是不受欢迎的。我使用它是有充分理由的。)
python - 我不明白 Python 3 exec 是如何工作的
结果NameError: name 'nDns' is not defined
。当我更改它时locals()
,globals()
它可以工作,但我真的不希望它写入全局变量。它必须保持在函数的范围内。如何?
python - 将 exec 进程中的标准输出存储到变量中
我目前有以下代码os.execv()
用于执行某种过程。例如:
在你告诉我使用之前subprocess
,请注意(出于分配目的),我应该坚持这种通过 Python 运行 bash 命令的特殊方法。
我想做类似的事情:
有谁知道我如何捕获从os.execv()
命令派生的输出(位于子进程中)并将其存储在变量中(也许将其返回给父进程)?
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 文件夹内,从终端)时,我收到以下消息:
python - 在 sympy parse_expr 中处理 Python 保留字?
如果我解析一个包含 的表达式lambda
,即使Symbol("lambda")
是有效的也会出现错误:
我想允许我的代码的用户以他们喜欢的方式命名他们的变量。有没有办法支持这一点?
如果没有,我可以想办法在保留字前面加上下划线。
如果这很重要,我正在使用 Sympy 1.6。