[英]imported python module from another directory fails
我已经使用sys.path.insert
从 Linux 中的另一个目录导入了 python 模块,但是当我运行该模块时它失败了。 由于导入的模块试图打开该模块本地的文件。 请让我知道如何解决这个问题。
users/adr/release/invoke.py #this one fails with can’t open file ./config.ini
import sys
sys.path.insert(0, ‘/user/cdw/audit/’)
import audit_main
原始模块文件所在的路径。
/user/cdw/audit/audit_main.py # this module opens config.ini file to read pplication credentials.
/user/cdw/audit/config.ini
/user/cdw/audit/__ini__.py
当 python 加载模块时,它会将元数据添加到模块可以使用的全局命名空间。 __file__
是 its.py 文件的文件名 - 当这样的名称有意义时。 您可以使用它来获取您的配置文件
import os
config_filename = os.path.join(os.path.dirname(__file__), "config.ini")
除非你不能。 如果这是一个 C 扩展文件,或者该文件位于 zip 或 egg 或 pyinstaller 包或 exe 等其他包装中,则可能无法正常工作。 我假设用户可编辑的 ini 文件可能需要位于模块目录以外的某个位置。 如果您将 this.py 作为可安装 package 的一部分,它可能最终位于用户无法编辑的系统目录中。 这对这个项目来说可能不是问题,只是列出一些考虑因素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.