Pycharm ModuleNotFoundError: No module named // 从子目录导入 python 失败

时间:2021-04-13 10:34:06

标签: python-3.x import module pycharm importerror

我遇到过很多类似的问题和文章,尝试了很多不同的方法,但仍然无法找到问题所在。

我在 pycharm 中创建了一个新项目并将其设置为 root。然后在根级别创建了一个脚本,其中包含一些我想在子目录的脚本中导入的变量。

这是 unix tree 命令的结果:

root_project  
├── subfolder  
│   └── sub_script.py  
└── variables_i_need.py  

variables_i_need.py 的内容很简单name = "john"

sub_script.py 的内容是

from variables_i_need import name

if __name__ == "__main__":
    print(name)

现在,当我使用 sub_script 的 enter image description here 播放按钮运行 sub_script.py 时,它可以工作并且运行控制台会打印:

/usr/bin/python3.8 /home/root_project/subfolder/sub_script.py
john

Process finished with exit code 0

但是当我尝试从命令行运行它时,它会中断:

python3 sub_script.py

~/Desktop/root_project/subfolder » python3 sub_script.py                                                                                      gabri@gabriele-computer
Traceback (most recent call last):
  File "sub_script.py", line 1, in <module>
    from variables_i_need import name
ModuleNotFoundError: No module named 'variables_i_need'

1 个答案:

答案 0 :(得分:1)

如果您查看 PyCharm 配置,有两个选项:

  1. 将内容根添加到 PYTHONPATH
  2. 将源根目录添加到 PYTHONPATH

它们被默认标记。

就您而言,第一个允许您正确运行脚本,因为它在 PYTHONPATH 环境变量中添加了 root_project 路径。

因此,如果您还想在命令行中运行脚本,您应该设置相同的变量。
你可以这样继续:

  1. 打开命令行

  2. 如果你使用的是 Linux,你可以使用

    导出 PYTHONPATH=

  3. 如果您使用的是 Windows,则可以使用

    SET PYTHONPATH=

  4. 运行脚本

    ~/Desktop/root_project/subfolder » python3 sub_script.py

请记住,export/set 命令不是永久的,它对当前命令行会话有效。