scf 安装失败,显示这些,这是什么原因?我已经装了python和pip
main.py
setup.py
app/ ->
__init__.py
package_a/ ->
__init__.py
module_a.py
package_b/ ->
__init__.py
module_b.py
另外2或3可以使用: from app.package_a import module_a
只要你有app你的PYTHONPATH,这将工作。main.py那么可以在任何地方。
所以,你写一个setup.py将整个应用程序包和子包复制(安装)到目标系统的python文件夹,并定位main.py到系统的脚本文件夹。
个人似乎都想告诉你应该做什么,而不是仅仅回答这个问题。
问题在于,通过将mod1.py作为参数传递给解释器,将模块作为“__main__”运行。
从PEP 328:
相对导入使用模块的__name__属性来确定模块在包层次结构中的位置。如果模块的名称不包含任何包信息(例如,它被设置为'__main__'),那么无论模块实际位于文件系统的哪个位置,相对导入都会被解析为模块是顶级模块。
在Python 2.6中,他们增加了相对于主模块引用模块的能力。 PEP 366描述了这种变化。
更新:根据Nick Coghlan,推荐的替代方法是使用-m开关在软件包内部运行模块。