如何从嵌入式Python环境中导入本地模块?
解决Windows嵌入式Python无法识别脚本所在目录模块的问题
以下是几种可行的解决思路,按需选择:
修改Python嵌入式包的._pth文件
找到嵌入式Python根目录下的python311._pth(文件名对应你的Python版本),打开后在现有路径列表末尾添加一行.(代表当前工作目录),或者直接添加脚本所在的具体相对路径。比如修改后的文件内容可能像这样:python311.zip . # Uncomment to run site.main() automatically #import site这样嵌入式Python就会默认把当前目录加入模块搜索路径,和常规Python一致。如果需要严格限制只包含脚本所在目录,也可以写成脚本目录的相对路径(比如脚本在根目录下的
scripts文件夹,就加scripts)。在主脚本中手动添加路径到sys.path
在目标脚本最开头加入以下代码,强制将脚本自身所在目录添加到模块搜索路径的最前面:import sys import os # 获取脚本所在的绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 将目录加入搜索路径 if script_dir not in sys.path: sys.path.insert(0, script_dir)这种方法只对当前脚本生效,不会影响其他使用该嵌入式Python执行的脚本,适合需要单独配置的场景,也能避免全局修改带来的潜在问题。
启用site模块(谨慎使用)
如果你希望嵌入式Python和常规Python的路径行为完全一致,可以打开python311._pth,把#import site这一行的注释去掉。启用site模块后,Python会自动添加用户站点目录等默认路径,但可能会引入系统中已有的Python依赖,破坏便携性,所以如果目标是完全便携的环境,不建议用这个方法。
内容的提问来源于stack exchange,提问作者RedStoneMatt
相关产品推荐
相关产品推荐

