- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在阅读 this所以关于从绝对路径导入模块的问题。一个答案建议使用以下代码:
import imp
foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()
我想从具有以下结构的目录导入文件(它是包):
__int__.py
model_params.py
我这样做过:
import01 = imp.load_source('module.name', '/home/wakatana/experiments/model_params/model_params.py')
现在我可以通过 import01.VARIABLE_NAME
访问 model_params.py
中的变量。这似乎等同于 import numpy as np
。其中 model_params.py
类似于 numpy
而 import01
类似于 np
。
请问load_source
方法的第一个参数是做什么用的? help(imp)
几乎没有提及 load_source
方法,例如以下 help(imp.load_source)
返回 load_source(...)
谢谢
根据 behzad.nouri 评论编辑
在 load_source 的文档页面上据说:
The name argument is used to create or access a module object.
但是当我尝试访问 module.name
时,我收到有关未定义模块的错误。还有为什么没有可以通过help
访问的文档,我可以通过某种方式安装它吗?我希望文档是 python 中代码本身的一部分,或者通常的做法是不内置它而是在线使用它?
最佳答案
official documentation有更多关于该主题的信息。
基本上,您加载模块时使用的名称将用于导入该模块的其他文件中。即使 python 路径中的任何地方都不存在 module.name
模块,如果您加载某个模块并为其指定该名称,则使用该名称执行常规 import
的其他模块将不会引发错误并按预期工作。也许一个小例子可以更好地说明这一点:
value = 1337
from foo.bar import value
def print_val():
print value
import imp
foo = imp.load_source('foo.bar', '/tmp/test/foo.py')
import bar
bar.print_val()
正如预期的那样,您将 1337
打印到屏幕上。如果名称不是 foo.bar
,则在 bar.py
中导入会失败,因为实际上不存在这样的模块。
这个方法实际上可以用于猴子补丁,因为它会覆盖第 3 方模块中的导入。
关于python - imp.load_source 方法的第一个参数是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31773310/
我使用的是python2.5。我需要动态导入一个模块,然后在更改时重新加载。我如何实现这一目标。 我在下面的示例中尝试过 - 不起作用: import imp modfile = 'mymod_inf
我的应用程序具有以下布局: /wsgi/myapp/__init__.py /wsgi/application /app.py 文件_init_.py: from flask import Flask
对于某些Python项目,我在config模块中定义了默认配置。可以通过使用 rc 文件来进行定制 config = imp.load_source('config', 'some_rc_file')
我正在阅读 this所以关于从绝对路径导入模块的问题。一个答案建议使用以下代码: import imp foo = imp.load_source('module.name', '/path/to/f
什么时候使用imp.load_source() method用于导入 Python 模块?在某些情况下,与使用 import 关键字的正常导入相反,它是否有一些优势? 最佳答案 import 总是在下
我想知道以下行为是预期的还是错误。我正在使用 CPython2.7 创建文件x.py def funcA(): print "funcA of x.py" def funcB(): p
我有一个目录,其中包含任意数量的模块,每个模块仅包含一个函数do_stuff。例如: foos/ __init__.py foo_1.py foo_2.py ...
我有这个设置: 文件:一个.ext1一个.py a.ext1 出于某种原因加载 a.py,但作为引擎我需要加载文件 a.ext1。 我可以让它在 py3 中正常工作,但我无法让它在 py2 中工作。
我正在使用 imp从源加载 python 文件的模块(存在于:/parent_folder/path/to/my_module/my_module.py): mod = imp.load_source
我目前使用的是 Python 2.7,我正在尝试加载这样的文件: myPlt = imp.load_source('SourceFile', 'path/to/SourceFile.py') 但是,S
我想为我的 python 代码使用一个带有配置变量的 txt 文件。我看到以下代码并将其从 Web 复制到我的 python。 def getVarFromFile(filename): impo
我是一名优秀的程序员,十分优秀!