【发布时间】:2018-08-02 23:39:56
【问题描述】:
我有 python 3.6。我想从另一个名为“run.py”的python文件中执行名为“operation.py”的python文件。
在operation.py 我做from cStringIO import StringIO。 PyCharm 向我显示没有名为 StringIO 的模块的警告。我知道从 python3 开始我必须从 io 导入 StringIO 模块。但是,当我使用此导入时,此模块的功能不再起作用。
虽然from cStringIO import StringIO 中有警告,但代码仍然有效(我知道此导入确实有效,因为我尝试将其设为注释但无法运行)。问题是当我尝试通过 'run.py' 文件运行该文件时,它无法运行并打印以下消息:ModuleNotFoundError: No module named 'cStringIO'。
我尝试使用此Unresolved reference issue in PyCharm,但没有帮助。
为什么 'operation.py' 运行虽然有警告,但 'run.py' 没有?我该如何解决这个问题?
操作.py:
from cStringIO import StringIO
str_io = StringIO()
g = Generator(str_io, False)
# There is a full code here...
运行.py:
import operation
def main():
operation
operation.py 有警告但运行良好,run.py 失败。
【问题讨论】:
-
请提供一个最小的工作样本。从
run.py执行operation.py是什么意思? -
“我知道此导入确实有效,因为我试图将其设为注释但它无法运行” - 这并不意味着导入有效。无论是否导入,您的代码都同样被破坏。
-
1.您需要从
io import StringIO输入。然后,2.你需要比“当我使用这个导入时,这个模块的功能不再起作用”更清楚地描述问题。什么不起作用以及如何起作用?
标签: python python-3.x stringio cstringio