Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:Can';在脚本中运行脚本时找不到模块_Python_Import_Subprocess - Fatal编程技术网

Python:Can';在脚本中运行脚本时找不到模块

Python:Can';在脚本中运行脚本时找不到模块,python,import,subprocess,Python,Import,Subprocess,我创建了一个Python程序a,后来为其编写了另一个Python程序B,该程序使用子流程库调用a。我在a中安装了一个模块foo,它工作得非常好,直到我开始从B调用该程序。现在,我得到了错误: ImportError: no module named foo 当调用B时。我确信模块安装正确,因为当我从与a和B相同的目录输入python shell时,我能够导入foo并成功使用其函数。那么,为什么在这种情况下foo导入不正确呢 编辑 我使用以下调用从程序A调用程序B call(["python",

我创建了一个Python程序a,后来为其编写了另一个Python程序B,该程序使用子流程库调用a。我在a中安装了一个模块foo,它工作得非常好,直到我开始从B调用该程序。现在,我得到了错误:

ImportError: no module named foo
当调用B时。我确信模块安装正确,因为当我从与a和B相同的目录输入python shell时,我能够导入foo并成功使用其函数。那么,为什么在这种情况下foo导入不正确呢

编辑

我使用以下调用从程序A调用程序B

call(["python", "levMap9.py", inputFilePath, outputFilePath, scalingFactor])
在程序B(levMap9.py)中,我进行了以下导入,出于某种原因,这会导致导入错误

import Levenshtein as LV
EDIT2


我意识到可能值得一提的是,当我最初在OSX上开发这些程序时,它们工作得很好,但现在在Windows 8机器上出现了这个问题。

我尝试在PYTHONPATH中向Levenshtein模块添加路径(路径中已经存在),这解决了我的问题;虽然我不完全明白为什么。感谢那些提供建议的人

编辑


在这里找到了我问题的真正答案:

你能最终提供一些最简单的三个python文件代码吗,这样你就可以直接发现罪魁祸首了(当我不得不以散文形式遵循这样的设置时,它很快就开始弯曲我的旧大脑;-)谢谢。当然。请稍等。当您在调用情况下(通过打印或raise,或在除ImportError外的
中,
Levenshtein
导入工作周围的try块中,
levmapp9.py
透视图输出时,
sys.path
,它会包含所需的文件夹吗?两个文件的“位置”相关吗(与导入模块实现的位置相比)?A和B都有相同的绝对文件路径…那么它们应该是相同的;-)但得到的是:相同的文件夹。好的。有时候,最好显示更广泛的问题区域以获得答案:因此,尽管这些脚本都是用python编写的,但您必须将它们称为“像外来二进制文件一样”A调用B有效,但B调用A无效?工作情况,可以在问题中显示出来吗?在重构的情况下,我问自己:我做了什么改变,使其中断?但我看着我的屏幕或git在时间上前后移动…所以请尝试检查一下。