控制台中出现 ImportError 但 PyCharm 中没有

ImportError in console but not in PyCharm

我正在启动一个分为多个包和文件的项目。我很快遇到的问题是,当从命令行 运行 时,从 PyCharm 内部 运行 时导入失败。 这是我的当前目录

文件C的内容:

print("File C imported")

文件B的内容:

print("File B imported")


class ClassB:
    def __init__(self):
        print("Class B made")

文件A的内容:

import src.packageB.fileB as B
import packageC.fileC

B.ClassB()

print("packageA ran")

当我按下 PyCharm 中的播放按钮时,所有不同的模块都会导入并打印:

File B imported
File C imported
Class B made
packageA ran

当 fileA 是来自命令行的 运行 时,抛出错误 "No module name src"。我已经尝试从 "PackageTest"、"src" 和 "packageA" 运行ning fileA.py,但是从 python 运行 更改目录]s 似乎没有什么不同。

我确定我不明白为什么会发生这种情况的根本问题。我真的很想了解,所以当这个项目变得更加复杂和深入时,我可以像这样解决导入问题。感谢您的帮助!

您遇到的问题与您在 PyCharm 中 运行 脚本的方式有关 - 对于您指定工作目录的每个 运行 配置。

只要您在 运行从命令行运行脚本时 cd 到相同的工作目录,行为应该是相同的。

如果您不确定是哪一个,您可以查看配置或控制台输出。

这个问题的答案可能也值得一读: