Pycharm ModuleNotFoundError: No module named // python import from child directory fails
Pycharm ModuleNotFoundError: No module named // python import from child directory fails
我遇到过很多类似的问题和文章,尝试过很多不同的方法,但仍然找不到问题所在。
我在 pycharm 中创建了一个新项目并将其设置为根目录。然后在根级别创建一个脚本,其中包含我想在子目录脚本中导入的一些变量。
这是 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.py 使用 sub_script 的 播放按钮时,它可以工作并且 运行 控制台打印:
/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'
如果您查看 PyCharm 配置,有两个选项:
- 将内容根添加到 PYTHONPATH
- 将源代码添加到 PYTHONPATH
它们被默认标记。
在您的情况下,第一个允许您正确地 运行 脚本,因为它在 PYTHONPATH 环境变量中添加了 root_project 路径。
因此,如果您还想在命令行中 运行 脚本,您应该设置相同的变量。
您可以这样进行:
打开命令行
如果你在Linux你可以使用
export PYTHONPATH=
如果你在 Windows 你可以使用
SET PYTHONPATH=
运行 脚本
~/Desktop/root_project/subfolder » python3 sub_script.py
请记住export/set命令不是永久的,它对当前命令行会话有效。
我遇到过很多类似的问题和文章,尝试过很多不同的方法,但仍然找不到问题所在。
我在 pycharm 中创建了一个新项目并将其设置为根目录。然后在根级别创建一个脚本,其中包含我想在子目录脚本中导入的一些变量。
这是 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.py 使用 sub_script 的
/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'
如果您查看 PyCharm 配置,有两个选项:
- 将内容根添加到 PYTHONPATH
- 将源代码添加到 PYTHONPATH
它们被默认标记。
在您的情况下,第一个允许您正确地 运行 脚本,因为它在 PYTHONPATH 环境变量中添加了 root_project 路径。
因此,如果您还想在命令行中 运行 脚本,您应该设置相同的变量。
您可以这样进行:
打开命令行
如果你在Linux你可以使用
export PYTHONPATH=
如果你在 Windows 你可以使用
SET PYTHONPATH=
运行 脚本
~/Desktop/root_project/subfolder » python3 sub_script.py
请记住export/set命令不是永久的,它对当前命令行会话有效。