嵌入式Python模块导入失败求助:已修改PYTHONPATH仍无法解决
嵌入式Python模块导入失败的原因及解决方法
原因分析
嵌入式Python版本默认通过python310._pth(对应你的3.10版本)文件限制了模块搜索路径,并且默认禁用了PYTHONPATH环境变量的读取,同时默认的sys.path仅包含Python安装根目录和Lib/site-packages(若存在)。你的module_test.py位于run_scripts目录,不在默认搜索路径内,且修改PYTHONPATH因_pth文件的限制无法生效,导致模块找不到。
解决方法
方法1:修改python310._pth配置文件
找到Python嵌入式目录下的python310._pth文件,打开后做以下任一操作:
- 添加一行
run_scripts(或该目录的完整绝对路径),保存后重新运行脚本; - 去掉文件中
#import site前的注释符号#,启用site模块,此时PYTHONPATH环境变量会被正常读取,之前设置的路径会生效。
方法2:在脚本中手动添加模块路径
在script.py的最顶部添加代码,将run_scripts目录加入搜索路径:
import sys sys.path.append('./run_scripts') # 或使用绝对路径:sys.path.append(r'C:\Users\test\Desktop\winpy\python-3.10.10-embed-win32\run_scripts')
方法3:运行时动态添加路径
通过Python的-c参数在执行脚本前修改sys.path:
@python.exe -c "import sys; sys.path.append('run_scripts'); exec(open('run_scripts/script.py').read())"
内容的提问来源于stack exchange,提问作者Mr. Nom4ik
相关产品推荐
相关产品推荐

