Python“找不到模块” - PYTHONPATH修复不起作用

时间:2013-05-06 20:28:25

标签: python import module cython

我在工作:

  • 的Eclipse
  • Windows 7
  • 64位Python 3.3

我想将writer.pyx(是的,Cython)导入main.py。在main.py的顶部,我有适当的import语句:

import writer

main.pywriter.pyx都位于同一目录中,该目录也位于Windows' PYTHONPATH环境变量。但是,它给了我错误ImportError: No module named 'writer'。所以,据我所知,它应该有效。

但是,这就是踢球者:在同一个目录中,还有一个名为reader.pyx的文件,我也在main.py中导入 - 而且效果很好。没有问题,没有错误。

所以,明确总结:

  • main.py import writer.pyxreader.pyx
  • 所有三个文件都在同一目录中(PYTHONPATH列出该目录)
  • reader.pyx导入正常,但writer.pyx会导致ImportError: No module named 'writer'

关于如何解决此问题的任何想法?

视觉表现:

import reader
import writer

def function():
    # code

P.S。这不是我的代码,它曾经在这台计算机上运行得很好,而且代码从那时起就没有改变过。这让我相信它是一个环境问题,但我不确定是什么。也许是Cython的东西?我对此没有任何实际经验。

3 个答案:

答案 0 :(得分:0)

你是在打包吗?如果是这样,您将需要使用包名称导入它:

from mypackage import writer

答案 1 :(得分:0)

我看到有两种选择。 首先,请记住,在日食和窗户中,你的PYTHONPATH可能会有所不同。日食改变了路径。 其次,请试试这个

from writer import *

告诉我们是否找到了编写包

答案 2 :(得分:0)

据我了解,pyx个文件需要compiled before they can be loaded。如果您首先发布:

,则可以使用pyximport在脚本中执行此操作
import pyximport; pyximport.install(pyimport = True)

最重要的是,根据您的路径中似乎有另一个reader.py的事实,我建议您在main.py所在的同一目录中创建一个文件夹(比如说你的名字)它test_imports}并将reader.pyxwriter.pyx放在那里,以便您确定在发布时导入这些文件:

from test_imports import reader, writer

请注意,test_imports目录还需要一个空的__init__.py文件,告诉Python它是package