我试图让Python中的相对进口。 但我不明白我在所以在这里寻找它的语法,每次,我不能得到答案:
这里是我的文件夹结构:
Root
libraries
mylibrary
__init__
projects
project
myproject.py
我想导入“在MyLibrary”使用相对路径,什么是做它的语法?
我试图让Python中的相对进口。 但我不明白我在所以在这里寻找它的语法,每次,我不能得到答案:
这里是我的文件夹结构:
Root
libraries
mylibrary
__init__
projects
project
myproject.py
我想导入“在MyLibrary”使用相对路径,什么是做它的语法?
你必须将该目录添加到你的Python路径。
import sys
sys.path.append("/libraries")
但我认为这可能会更好要么把图书馆需要它,还是将它们安装到标准的地方之一,已经在sys.path中的项目的文件夹。
我不认为它可以用一个简单的进行import
语句。 我会做的是相对路径添加到库文件夹sys.path
是这样的:
import sys
sys.path.append('../../')
from libraries import mylibrary
请注意,这只有当你开始从Python解释器projects/project
目录。
有混乱的一个不幸的源相对于进口。 当你第一次了解他们,你认为他们允许您使用一般相对文件/目录路径是指将要导入单个文件。 (或者至少,我是这么认为的。)其实,他们只允许你在一个包中使用相对路径。 这意味着,在一个包中某些模块可以使用相对导入语法时,他们需要从同一封装内导入其他模块。
在你的榜样,myproject.py是不是在同一个包在MyLibrary,而事实上是没有任何包装,所以没有办法用从内myproject.py相对进口。 相对进口只是没有在这种情况下适用。
有一对夫妇的事情你可以做的就是你想要的效果。 其中一个是把你的图书馆系统中的站点包目录的子目录。 另一种是把.PTH文件系统中的站点包目录,包含路径到您的库存储在地方的.PTH文件。 另一种是用PYTHONPATH以指向您存储库的目录。