- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于某些Python项目,我在config
模块中定义了默认配置。可以通过使用 rc 文件来进行定制
config = imp.load_source('config', 'some_rc_file')
rc 文件可能仅重新定义配置变量的子集,甚至根本不重新定义,并且我希望未重新定义的变量仍将作为 config
模块的属性存在,其属性如下:默认值。如果从 __main__
调用 load_source
,一切都会顺利进行。但是,如果在包中使用它,则模块中唯一“留下”的变量是 rc 文件中的变量。
有一个 MWE here 。 direct.py
按预期工作,但 indirect.py
.
|-- run.sh # runs python {,in}direct.py
|-- altconfig.py # the rc file, redefines (only) BAR
|-- config.py -> testimp/config.py # symlink to use by direct.py
|-- direct.py # calls load_source directly
|-- indirect.py # calls load_source via uses_config.py
`-- testimp
|-- __init__.py
|-- config.py # default config, defines FOO and BAR
`-- uses_config.py
我缺少什么导入逻辑?
最佳答案
如果添加 print(config)
在您的测试代码中,您将看到 import config
导入的模块名为config
,但是 from . import config
导入的模块在 testimp 中称为 testimp.config
。 load_source
的第一个参数是要重用的模块的名称。既然您正在寻找 config
,找不到现有的导入,并且您会得到一个新的模块对象。
最简单的解决方案是不对模块的名称进行硬编码。将您的 imp 行更改为此,它将在任何地方工作:
config = imp.load_source(config.__name__, 'altconfig.py')
关于python - 来自包内的 imp.load_source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27600898/
我在一个 twig 模板中使用 Assetic 来指定要从我的包中使用的 2 个 JS 文件 { % javascripts '@JiraExtendedReportsBund
我正在做一个 VS 包,它在菜单中有一个 DynamicItemStart 按钮。我在 VS 启动时加载动态按钮的内容没有任何问题,但我试图在某些事件(例如打开项目)之后向其内容添加更多命令。我将新命
需求是从plsql调用java方法,我可以通过loadjava命令来实现它。我遵循的步骤是: 第 1 步:创建 Java Class/jar 文件并将其放置在 Unix 机器上 第2步:将Java C
我是一名优秀的程序员,十分优秀!