Python 从同一层次结构级别的文件夹导入
我一直在这个网站上寻找如何导入存储在同一层次结构级别的文件夹中的类。我发现使用Python 从同一层次结构级别的文件夹导入,python,python-3.x,Python,Python 3.x,我一直在这个网站上寻找如何导入存储在同一层次结构级别的文件夹中的类。我发现使用。应该会给我带来一个文件夹。或者至少,我是这样理解的,因为这个假设似乎是错误的 src/ folderStrucutre1/ __init__.py fileToImport.py <- contains A folderStrucutre2/ someFile.py __init__.py abc.py src/ 折页结构1/ _
。
应该会给我带来一个文件夹。或者至少,我是这样理解的,因为这个假设似乎是错误的
src/
folderStrucutre1/
__init__.py
fileToImport.py <- contains A
folderStrucutre2/
someFile.py
__init__.py
abc.py
src/
折页结构1/
__初始值
fileToImport.py由于包在python中的工作方式,您需要将src
和abc.py
移动到子文件夹中,并为其提供一个\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuupy
更改后的目录结构应如下所示:
package-name/
package-name/
folderStructure1/
__init__.py
fileToImport.py <- contains A
folderStructure2/
__init__.py
someFile.py
__init__.py
abc.py
最后,您应该打开IDEintellisense
工作的最顶层文件夹(abc.py的父文件夹)首先,我们需要创建src
文件夹的绝对路径,而无需在脚本中对其进行硬编码,以使其可移植
将此代码添加到someFile.py
文件中
import os
src_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
现在,让我们将您的folderStructure1
目录添加到Python搜索路径中
import sys
sys.path.append(src_path + '/folderStructure1')
现在,您可以使用以下各项:
from fileToImport import Class
object = Class()
您可以将src添加到python搜索路径,然后可以从fileToImport.py导入
为此,您应该编写someFile.py如下:
import sys
sys.path.append("..") # .. represente the father folder
from folderStrucutre1.fileToImport import A
instance_for_A = A()
可能import..folderStructure1.fileToImport
?这是否回答了您的问题?这将提供:在Intellisense中,尝试在顶级包之外进行相对导入。是否在abc.py
旁边添加了\uuuu init\uuuuuuuuuuuuuupy
文件?我意识到我忘了在示例结构中添加它,因此如果你没有添加它,那就是我的错:P我编辑了图表,将\uuuu init\uuuuuuuuuuy.py
包括在内,以供将来参考。重点是某个文件
(以及它旁边或下面的所有其他模块)首先对someFile
可见。@MisterMiyagi我不明白这是怎么回事,你能详细说明一下吗?@MisterMiyagi还可以将父类中的特定目录附加到PATH
解决这个问题吗?我根据你的评论编辑了答案。
import sys
sys.path.append("..") # .. represente the father folder
from folderStrucutre1.fileToImport import A
instance_for_A = A()