Ubuntu上的Python无法识别当前软件包

时间:2019-12-15 14:19:19

标签: python ubuntu

我有一个结构如下的python项目:

--prj
----app
------__init__.py
------mod1.py
------run.py
----README.md

and run.py的内容是

from app.mod1 import *

当我在Windows中运行时,它运行正常。 在Ubuntu中,它报告“ ModuleNotFoundError:没有名为'app'的模块”

开始参数是简单的“ cd ... prj / app; python3.6 run.py”

我试图通过“ python3.6 -c'import sys; print(sys.path)'”找出sys.path。 结果是

['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']

为什么会这样?

2 个答案:

答案 0 :(得分:1)

发生此问题是因为python脚本的名称与模块名称相同。尝试将app.py重命名为例如app_main.py,它应该可以工作。

答案 1 :(得分:0)

我觉得不对的是,每个文件夹和子文件夹都应具有 init .py,以便程序包在python中工作,而在app和project文件夹中则不存在。

还将软件包存储在'/usr/lib/python3.6/lib-dynload'中,然后尝试导入该软件包。