我在Windows10(Python3.7)上为Ubuntu 18.04.2(python3.5)开发API。有一次我将项目文件移到了子文件夹中:
project_folder/
sub/
__init__.py
app.py
main.py
app.py
def create_app():
return 'app'
main.py
from sub.app import create_app
app = create_app()
在Windows上导入成功,但是在ubuntu上却出现导入问题。在sys.path()中,第一个路径类似于full_path_to_project/project_folder/sub
,但仍然有错误ModuleNotFoundError: No module named 'sub'
。我将main.py从project_folder/sub
移到project_folder
来启动项目,它解决了导入错误。
当我回到这个问题时,突然发现如果将from app import create_app
导入from sub.app import create_app
,我可以将main.py
移到sub
文件夹中,而不会出现导入错误,但是Pycharm检查将其突出显示为错误Unresoled references
。
我对导入的PyCharm警报感到困惑。新的导入可在Windows和Ubuntu上使用。我做错了还是PyCharm问题?为什么当我的from sub.app import create app
中有full_path_to_project/project_folder/sub
时不能做sys.path
?