问题标签 [execfile]

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 回答
942 浏览

python - 从另一个 python 程序运行 python 程序(有一定的要求)

假设我有两个 python 脚本A.pyB.py. 我正在寻找一种从 A 内部运行 B 的方法,即:

  1. B 相信它是__main__(以便if __name__=="__main__"B 中的块中的代码将运行)
  2. B 实际上不是__main__(因此它不会覆盖"__main__"sys.modules 中的条目)
  3. B 中引发的异常传播到 A(即,可以用exceptA 中的子句捕获)。
  4. 如果没有捕获这些异常,则会生成正确的回溯引用 B 中的行号。

我尝试了各种技术,但似乎没有一个能满足我的所有要求。

  • 使用子流程模块中的工具意味着 B 中的异常不会传播到 A。
  • execfile("B.py", {})运行 B,但它认为它不是主要的。
  • execfile("B.py", {'__name__': '__main__'})使 B.py 认为它是主要的,但它似乎也搞砸了异常回溯打印,因此回溯引用 A 内的行(即真正的__main__)。
  • 使用imp.load_sourcewith__main__作为名称几乎可以工作,除了它实际上修改了 sys.modules,因此踩踏了现有的值__main__

有什么办法可以得到我想要的吗?

(我这样做的原因是因为我正在对现有库进行一些清理。这个库没有真正的测试套件,只有一组产生特定输出的“示例”脚本。我试图利用这些作为测试以确保我的清理不会影响库执行这些示例的能力,所以我想从我的测试套件中运行每个示例脚本.我希望能够在测试脚本中看到这些脚本的异常所以测试脚本可以报告失败的类型,而不仅仅是在示例脚本引发一些异常时报告通用的 SubprocessError。)

0 投票
2 回答
494 浏览

python - 在文件上迭代 Python 脚本,使用通配符扩展,并通过 args

我有一些脚本可以对文件进行一些处理。通常他们接受文件作为他们的第一个命令行参数,然后是其他参数。

我想编写一个主脚本,它接受要运行的脚本的名称、指定目标文件(a-la glob)的通配符,以及可能传递给输入脚本的参数。主脚本将遍历文件,并使用附加参数运行输入脚本。

if __name__ == "__main__":请注意,输入脚本是遗留的,并且可能在末尾不包含通常的行。他们还可以访问sys.argv.

有什么建议么?

0 投票
1 回答
1755 浏览

python - 如何在 Python 中执行代码字符串?

我知道这里有一个类似的问题,但我有一个不同的问题。

我在插件中有一些代码文件,但插件使用只有软件知道的内部路径,所以我无法访问该路径以将其与execfile.

但是有一个名为 的内部 python 函数readInternalFile (path),我可以在其中使用这个内部路径并将这个文件的内容作为字符串返回。

所以我想我可以使用标准的python函数exec,但是一旦我这样做,它就会抱怨第一行是'\r\n'。

我怎样才能解决这个问题?我打印数据readInternalFile返回的类型,它是str,所以一切都应该没问题,对吧?

文件中的代码自行工作,没有语法错误等。

0 投票
3 回答
12708 浏览

python - Python:'import *' vs execfile

在我的一些 Django 应用程序中,我使用settings_local.py文件来覆盖各种环境(例如开发、测试和生产)中不同的设置。我最初使用以下代码将其内容包含在settings.py

我最近发现了这个execfile功能并切换到类似的东西:

两者都按预期工作,但我很好奇我是否遗漏了任何问题,一般来说哪种方法更推荐以及为什么。

0 投票
0 回答
334 浏览

python - 使用 execfile 的 Eclipse PyDev 未定义变量

我是 PyDev 的新手,所以这可能是对我的问题的简单回答。

我拉入 PyDev 的代码使用 execfile 而不是导入来从另一个文件中拉入一个类。我无法控制代码,因此无法将其更改为导入。

对于 execfile 引入的每个类,我得到一个未定义的变量。

有没有办法让 PyDev 识别我通过 execfile 引入的类。也许有某种方法可以在 PyDev 中进行隐式导入?

0 投票
2 回答
1441 浏览

python - execfile 在它的工作目录中来自其他文件

我有这样的结构:

我发现了几个类似的问题,答案让我想到了这一点:

问题是当我运行 myMain.py 时,startup.py 中的导入失败:

但是,当我直接运行 startup.py 时它可以工作。任何帮助,将不胜感激。

0 投票
1 回答
10704 浏览

python - python 中的 execfile() ,用于用户输入

我正在尝试从用户那里获取文件名,然后execfile()用来执行文件。下面是我的代码:

我了解它的execfile()工作原理如下:

当文件名作为变量传递时,我不确定如何执行此操作。我正在使用python 2.7。

0 投票
1 回答
1694 浏览

python - 在 python 脚本中使用 argparse 执行 python 脚本

我有两个不同的 python 脚本,第一个是使用 argparse 来获取一些额外的参数(我称之为 arg.py),第二个是我的主脚本(main.py)。
我想在 main.py 中调用 arg.py 但我不知道该怎么做。我看了一下命令 execfile 但我没有设法让它工作。
我尝试放入
execfile('arg.py -h')
main.py 但 python 尝试查找不存在的文件 'arg.py -h'。有谁知道这是怎么做到的吗 ?

提前致谢

0 投票
1 回答
794 浏览

python - 如何在pylab中运行一个python文件,它执行另一个python文件?

我想创建一个运行我请求的文件的启动配置。到目前为止,我的配置文件如下:

但由于execfile某种原因不起作用,我最终不得不%run在 pylab 中使用。有没有解决的办法?

0 投票
2 回答
827 浏览

handler - 未知的 url 处理程序类型,未定义 execfile

尝试实施教程“Hello world”。

当我选择 Python 3.1 时,什么都没有发生,并且日志说 execfile(script_path, globals_) 没有定义。

当我使用 python 2.7 时,终端窗口打开,但有一段时间没有任何反应,然后关闭。日志文件说:

我正在使用介绍中的代码。关于可能出了什么问题的任何想法?