如果您
app/server.py以脚本运行,
app则不会将的父目录添加到中
sys.path()。该
app目录本身,而不是被添加(而不是作为一个包,但作为进口搜索路径)。
您有4个选择:
- 移动
server.py
出 所述的app
包(它旁边) app
在仅运行的旁边添加一个新的脚本文件:from app import server
server.main()
使用
-m
switch选项将 模块 作为主要入口点运行:python -m app.server
将的父目录添加
server.py
到sys.path
:import os.path
import sys
parent = os.path.dirname(os.path.dirname(os.path.abspath(file)))
sys.path.insert(0, parent)
但是,这最后一个选项可能会带来更多问题。现在两个
app包和包含在模块 中
的
app封装上
sys.path。您可以同时导入
app.server和
server,Python将把它们视为两个独立的模块,每个模块在中都有自己的条目
sys.modules,并具有各自的全局变量的单独副本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)