每当我在终端错误'ModuleNotFoundError中运行main.py脚本时:不会发生名为'src'的模块。但是,它在PyCharm中运行良好。
项目结构:
-project
-resources
-src
-package1
-script1.py
-script2.py
-package2
-script3.py
-main.py
从终端我这样跑-
project$ python src/main.py
我得到的错误:
Traceback (most recent call last):
File "src/main.py", line 1, in <module>
from src.package1 import script1
ModuleNotFoundError: No module named 'src'
我已经尝试过将文件夹/软件包'src'的绝对路径添加到sys.path
main.py
from src.package1 import script1
from src.package1 import script2
from src.package2 import script3
if name=="__main__":
...
...
sys.path
current sys.path is ['/home/xyz/Projects/project/src', '/home/xyz/Apps/anaconda3/envs/project/lib/python37.zip', '/home/xyz/Apps/anaconda3/envs/project/lib/python3.7', '/home/xyz/Apps/anaconda3/envs/project/lib/python3.7/lib-dynload', '/home/xyz/Apps/anaconda3/envs/project/lib/python3.7/site-packages', 'src/main.py']
https://docs.python.org/3/tutorial/modules.html#the-module-search-path
导入名为spam的模块时,解释器首先搜索具有该名称的内置模块。如果未找到,那么它将搜索
spam.py
该变量给定的目录列表中命名的文件sys.path
。sys.path
从以下位置初始化:
- 包含输入脚本的目录(如果未指定文件,则为当前目录)。
PYTHONPATH
(目录名称列表,语法与shell变量PATH相同)。- 取决于安装的默认值。
由于您提供了文件,因此src/main.py
其包含的文件夹将成为搜索根目录。您可以在不指定src.
零件的情况下导入模块。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句