我在工作:
我想将writer.pyx
(是的,Cython)导入main.py
。在main.py
的顶部,我有适当的import语句:
import writer
main.py
和writer.pyx
都位于同一目录中,该目录也位于Windows' PYTHONPATH环境变量。但是,它给了我错误ImportError: No module named 'writer'
。所以,据我所知,它应该有效。
但是,这就是踢球者:在同一个目录中,还有一个名为reader.pyx
的文件,我也在main.py
中导入 - 而且效果很好。没有问题,没有错误。
所以,明确总结:
main.py
import
writer.pyx
和reader.pyx
reader.pyx
导入正常,但writer.pyx
会导致ImportError: No module named 'writer'
关于如何解决此问题的任何想法?
视觉表现:
import reader
import writer
def function():
# code
P.S。这不是我的代码,它曾经在这台计算机上运行得很好,而且代码从那时起就没有改变过。这让我相信它是一个环境问题,但我不确定是什么。也许是Cython的东西?我对此没有任何实际经验。
答案 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.pyx
和writer.pyx
放在那里,以便您确定在发布时导入这些文件:
from test_imports import reader, writer
请注意,test_imports
目录还需要一个空的__init__.py
文件,告诉Python它是package。