我正在尝试编写python库,其中一些文件依赖于其他文件,例如:
我有文件夹结构:
../libname
../libname/core.py
../libname/supplementary1.py
../libname/supplementary2.py
../libname/__init__.py在哪里libname是我导入的地方。
core.py文件以以下开头:
import supplementary1
import supplementary2...some代码..。
如果我在主的core.py中测试它,这是很好的。
假设我想在我的项目中使用libname作为库。我的文件夹结构是:
./libname
./main.py其中main.py从core.py调用函数,这实际上需要来自supplementary1和supplementary2的函数。
目前,如果我尝试(在supplementary1中),它会抛出一个错误,说明没有main.py。
from core.py import function1我的问题是,如何从我的库导入文件?我的意思是,一种选择是将所有代码从例如supplementary1复制到core.py,但如果可能的话,我希望保持代码的优雅分离。
换句话说,如何导入已经从本地库导入一些文件的文件?
非常感谢。
发布于 2017-05-16 16:34:31
在import ...和from ... import ...中,您需要编写的不是文件名,而是模块名。与core.py不同,您应该说libname.core,意思是“core,from package libname”(libname将是在所有模块路径中搜索,通常包括已启动脚本的目录,即main.py所在的位置)。
博士:你的问题的一个简单的答案是写from libname.core import function1。
另外,我建议使用相对进口,而不是import supplementary1 and from . import supplementary1 --在这里,from .的意思是“来自当前的包--这个文件(模块)驻留在其中”。
请考虑阅读关于模块的Python文档 --这里有很多例子和解释。
https://stackoverflow.com/questions/44006564
复制相似问题