我有一个名为“slingshot”的python项目/库,其目录结构如下:
slingshot/
__init__.py
__main__.py
build.py
deploy.py
util/
__init__.py
prepare_env.py
cdn_api.py
从__main__.py
我想从util/prepare_env.py
导入函数。在
我想确保util
引用我项目中的util
,而不是其他可能安装在某处的{
我尝试了from .util import prepare_env
,但是我得到了一个错误。在
from util import prepare_env
似乎可以工作,但不能解决“util”的模糊性。在
我做错什么了?在
__main__.py
如下:
当我输入python3 ./slingshot
时,我得到以下错误:
File "./slingshot/__main__.py", line 2, in <module>
from .util import prepare_env
ImportError: attempted relative import with no known parent package
当我输入python3 -m ./slingshot
时,我得到以下错误:
/usr/local/opt/python3/bin/python3.6: Relative module names not supported
当您使用
-m
命令行开关时,包中的__main__.py
模块使模块作为脚本运行。该开关使用模块名,而不是路径,因此删除./
前缀:当前工作目录被添加到模块搜索路径的开始处,因此
slingshot
首先被找到,无需在这里给出相对路径说明。在从^{} switch documentation :
相关问题 更多 >
编程相关推荐