Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 命令行中出现包导入错误,但PyCharm中没有_Python_Pycharm - Fatal编程技术网

Python 命令行中出现包导入错误,但PyCharm中没有

Python 命令行中出现包导入错误,但PyCharm中没有,python,pycharm,Python,Pycharm,到目前为止,我有一个通过PyCharm编译的项目。它的结构是这样的 ParentFolder\ - Mains\ - __init__.py - main.py - package\ - __init__.py - util.py 在main.py中,我有这样一个导入行: from package.util import ... 现在,当我在PyCharm中运行它时,它不会出现任何问题。 但是,当我试图通过命令行运行此命令时,我无法从util.py导入,因此出现错误 No m

到目前为止,我有一个通过PyCharm编译的项目。它的结构是这样的

ParentFolder\
- Mains\
  - __init__.py
  - main.py
- package\
  - __init__.py
  - util.py
在main.py中,我有这样一个导入行:

from package.util import ...
现在,当我在PyCharm中运行它时,它不会出现任何问题。 但是,当我试图通过命令行运行此命令时,我无法从util.py导入,因此出现错误

No module named ...

除了简单的
python main.py
命令之外,PyCharm似乎还做了一些额外的事情。关于这可能是什么以及我应该如何通过命令行复制它的任何指针?

您可以检查您运行的配置,您会发现默认情况下选中了两个复选框:

Add content roots to PYTHONPATH

Add source roots to PYTHONPATH

这使您能够导入包

Pycharm将当前项目的目录添加到
sys.path
(python在其中查找模块),这就是为什么您可以在Pycharm中找到该模块,但在直接从python解释器执行时却找不到。没错。但是如何通过终端实现同样的效果呢?您可以手动设置env变量
PYTHONPATH
。例如:
PYTHONPATH=/path/to/your/project python main.py