Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.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 导入尝试导入与我指定的文件不同的文件_Python_Eclipse_File_Import - Fatal编程技术网

Python 导入尝试导入与我指定的文件不同的文件

Python 导入尝试导入与我指定的文件不同的文件,python,eclipse,file,import,Python,Eclipse,File,Import,我有一个名为baseFunctions.py的文件,我将其更改为elementFunctions.py。使用parsePeaksMzML.py导入elementFunctions会给我带来奇怪的打印语句,特别是因为我在elementFunctions.py中没有任何打印语句。使用Eclipses调试器单步执行代码,而不是执行 import elementFunctions 正如它在parsePeaksMzML.py中所说的,它确实做到了 import baseFunctions 我认为重命名

我有一个名为baseFunctions.py的文件,我将其更改为elementFunctions.py。使用parsePeaksMzML.py导入elementFunctions会给我带来奇怪的打印语句,特别是因为我在elementFunctions.py中没有任何打印语句。使用Eclipses调试器单步执行代码,而不是执行

import elementFunctions
正如它在parsePeaksMzML.py中所说的,它确实做到了

import baseFunctions
我认为重命名过程中出现了一些奇怪的混乱,所以我复制了elementFunctions.py中的所有代码,删除了该文件,创建了一个新文件,并将所有代码粘贴到新文件中。但我还是犯了同样奇怪的错误。查看文件夹时,我仍然有baseFunctions.pyc,所以我删除了它。重新运行代码给了我:

Traceback (most recent call last):
  File "/homes/ndeklein/workspace/MS/Trunk/PyMS_dev/pyMS/test/test_parsePeaksMzML.py", line 25, in <module>
    import parsePeaksMzML
  File "/homes/ndeklein/workspace/MS/Trunk/PyMS_dev/pyMS/test/parsePeaksMzML.py", line 12, in <module>
    import elementFunctions
ImportError: No module named baseFunctions
回溯(最近一次呼叫最后一次):
文件“/homes/ndeklein/workspace/MS/Trunk/PyMS_dev/PyMS/test/test_parsePeaksMzML.py”,第25行,在
导入peaksmzml
文件“/homes/ndeklein/workspace/MS/Trunk/PyMS_dev/PyMS/test/parsePeaksMzML.py”,第12行,在
导入元素函数
ImportError:没有名为baseFunctions的模块
不知何故,import elementFunctions指向import baseFunctions(我不知道为什么),删除和重新生成elementFunctions.py没有任何效果。我在谷歌上找不到像这样的搜索,也找不到堆栈溢出,所以我有点被难住了

我怀疑这是eclipse的问题,但我不确定


编辑:
更奇怪的是,我从导入parsePeaksMzML.py时出错 测试_parsePeaksMzML.py,但在我直接运行parsePeaksMzML.py时不测试

编辑2:
从命令行运行会产生相同的错误:

-bash-3.2$ python test_parsePeaksMzML.py
Traceback (most recent call last):
  File "test_parsePeaksMzML.py", line 26, in <module>
    import parsePeaksMzML
  File "/homes/ndeklein/workspace/MS/Trunk/PyMS_dev/pyMS/test/parsePeaksMzML.py", line  12, in <module>

ImportError: No module named baseFunctions
-bash-3.2$ 
-bash-3.2$python测试\u parsePeaksMzML.py
回溯(最近一次呼叫最后一次):
文件“test_parsePeaksMzML.py”,第26行,在
导入peaksmzml
文件“/homes/ndeklein/workspace/MS/Trunk/PyMS_dev/PyMS/test/parsePeaksMzML.py”,第12行,在
ImportError:没有名为baseFunctions的模块
-bash-3.2美元

如果更改了文件名,工作区中可能会残留一些旧的.pyc文件。我假设您正在Eclipse中使用PyDev插件;我已经有一段时间没用了,但是你应该可以做一个项目->清理。如果这没有帮助,请尝试手动清除工作区中的所有.pyc文件


你描述的症状非常奇怪,所以我不能100%确定问题出在哪里。不管怎样,请尝试清理您的工作区,并让我们了解工作进展情况。

请尝试全面删除所有
.pyc
文件,看看是否可以清除。如果没有,以下是一些可能性:

  • 您的
    $PYTHONPATH
    指向的源代码与您预期的不同。(尽管这可能不是全部解释。)
  • elementFunctions/\uuuu init\uuuu.py中的代码正在尝试导入baseFunctions
  • 某个地方的代码正在使用exec语句进行导入,或者使用内置的\uuuuuuuuuuuuuuuuuuuu函数动态导入baseFunctions(这可能会使指令的源难以查找)

发布在Eclipse IDE中投影/清理后发生的事情。您可以通过独立运行代码来测试IDE是否负责。请报告结果;然后我们知道是对IDE还是导入进行故障排除。我将结果放在edit2下,它仍然会给出相同的错误。首先,我更改了文件名,但当文件不起作用时,我复制了代码,删除了文件,并将代码放在新创建的文件中。我从文件夹中删除了所有的.pyc文件,并清理了生成的文件,但仍然会出现相同的错误。在文件夹中的某个地方有一个parsePeaksMzML.pyc文件,我没有查看它(仍然不知道它为什么在那里或为什么导入了该文件),删除该文件解决了问题。谢谢