Import尝试导入不同于我指定的文件

2024-04-20 01:07:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个文件叫基本函数.py我改成了元素函数.py. 使用导入elementFunctions解析峰值Mzml.py给了我奇怪的打印语句,特别是因为我没有任何打印语句元素函数.py. 用Eclipses调试程序单步执行代码,而不是

import elementFunctions

就像报纸上说的解析峰值Mzml.py,它真的做到了

import baseFunctions

我觉得重命名有点奇怪,所以我复制了所有的代码元素函数.py,删除了文件,创建了一个新文件,并将所有代码粘贴到新文件中。但我还是犯了同样奇怪的错误。在文件夹里我仍然有基本函数.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

不知何故import elementFunctions指向import baseFunctions(我不知道为什么)并删除和重新生成元素函数.py没有效果。我在google上找不到像这样的搜索或者堆栈溢出,所以我有点被难住了。你知道吗

我怀疑这是eclipse的问题,但我不确定。你知道吗


编辑:
更奇怪的是,我在导入时出错了解析峰值Mzml.py从 试验_解析峰值Mzml.py,但我跑的时候不行解析峰值Mzml.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$ 

Tags: 文件函数代码pytestimport元素line
2条回答

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

你描述的症状很奇怪,所以我不能百分之百确定是什么问题。无论如何,尝试清理你的工作区,让我们知道事情是如何进展的。你知道吗

请尝试全面删除所有.pyc文件,看看这样是否能清除这些文件。如果不是,这里有一些可能性:

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

相关问题 更多 >