我创建了一个名为字符串播放.py,并调用了一个文件扫描文件.py然后在中调用函数扫描文件.py在另一个名为控制器.py. 但它引起了一个错误字符串播放.py不存在
在扫描文件.py你知道吗
import StringPlay as SP
def TNews(FileFirstLine):
FileLine = SP.RemoveSpases(FileFirstLine)
if True:
Statement
return(FileLine)
在控制器.py你知道吗
from HelpFiles import StringPlay as SP
from HelpFiles import ScanTheFile as StF
File1 = open("TextFiles\File1.txt")
print(Stf.TNews(File1.readline()))
当执行此操作时,它会引发一条消息,指出扫描文件.py在第1行:
File "C:\Users\***\My Documents\Python\HelpFiles\ScanTheFile.py", line 1, in <module>
import StringPlay as SP
ImportError: No module named 'StringPlay'
但是什么时候扫描文件.py被处决了没问题。你知道吗
这是我的目录结构
My Documents\Python
My Documents\Python\Controller.py
My Documents\Python\HelpFiles
My Documents\Python\HelpFiles\ScanTheFile.py
My Documents\Python\HelpFiles\StringPlay.py
My Documents\Python\TextFiles
My Documents\Python\TextFiles\File1.txt
My Documents\Python\TextFiles\File2.txt
您正在从
HelpFiles
导入,它基本上是一个文件夹而不是一个文件。简单地说,在python中,如果要从文件夹导入某个内容,它必须是一个包,除非您显式地将文件夹的路径添加到python路径。你知道吗因此,要解决这个问题,您需要将名为
__init__.py
的空文件放入该文件夹中,使HelpFiles
成为一个包,该文件夹应该如下所示您遇到这个问题是因为当您运行
Controller.py
时,您正在运行它,比如说C:\...\My Documents
当您调用from HelpFiles import ScanTheFile as StF
时,您告诉python在C:\...\My Documents\HelpFiles
中查找名为ScanTheFile.py
的文件。你知道吗它找到这个文件并在
C:\...\My Documents
中运行它,因此当它到达ScanTheFile.py
中的行时:它在
C:\...\My Documents
中寻找StringPlay.py
,我可以从C:\...\My Documents\HelpFiles
中收集到。你知道吗既然您已经在
Controller.py
中显式导入StringPlay.py
,我想说只要将ScanTheFile.py
更改为只导入StringPlay.py
,而不是直接运行导入的文件:ScanTheFile.py
相关问题 更多 >
编程相关推荐