Python 3.x Python导入方案

Python 3.x Python导入方案,python-3.x,Python 3.x,我正在尝试编写一个python库,其中一些文件依赖于其他文件,例如: 我有文件夹结构: ../libname ../libname/core.py ../libname/supplementary1.py ../libname/supplementary2.py ../libname/__init__.py 其中libname是我从中导入的位置 core.py文件以以下内容开头: import supplementary1 import supplementary2 …一些代码 如果我在co

我正在尝试编写一个python库,其中一些文件依赖于其他文件,例如:

我有文件夹结构:

../libname
../libname/core.py
../libname/supplementary1.py
../libname/supplementary2.py
../libname/__init__.py
其中libname是我从中导入的位置

core.py文件以以下内容开头:

import supplementary1
import supplementary2
…一些代码

如果我在core.py的main中测试它,这就很好了

假设我想在我的项目中使用libname作为库。我的文件夹结构是:

./libname
./main.py
其中main.py调用core.py中的函数,而core.py实际上需要来自supplementary1和supplementary2的函数

目前,如果我尝试(在main.py中),它会给我一个错误,说没有补充1

我的问题是,如何从我的库中导入文件?我的意思是,一种选择是将所有代码从例如supplementary1复制到core.py,但如果可能的话,我希望将代码优雅地分开

换句话说,如何导入一个已经从本地库导入了一些文件的文件


非常感谢。

导入…
从。。。导入…
您需要写入的不是文件名,而是模块名。与
core.py
不同,您应该在包
libname
中说
libname.core
,意思是“module
core
”(
libname
,通常包括您启动的脚本目录,即
main.py
所在的位置)

tl;dr:您的问题的一个简单答案是从libname.core导入函数1编写

此外,我建议使用and而不是导入补充1
write
from。导入补充1
-此处,
来自。
表示“来自当前包-此文件(模块)所在的位置”


考虑阅读-这里有很多例子和解释。

import…
from。。。导入…
您需要写入的不是文件名,而是模块名。与
core.py
不同,您应该在包
libname
中说
libname.core
,意思是“module
core
”(
libname
,通常包括您启动的脚本目录,即
main.py
所在的位置)

tl;dr:您的问题的一个简单答案是从libname.core导入函数1编写

此外,我建议使用and而不是导入补充1
write
from。导入补充1
-此处,
来自。
表示“来自当前包-此文件(模块)所在的位置”


考虑阅读——这里有很多例子和解释。

谢谢,这对我来说很清楚。谢谢,这对我来说很清楚。
from core.py import function1