我试图用python做一些编码练习。这是我的结构
mydir/
template.py
problem1/
solution.py
problem2/
solution.py
我想在template.py中编写一些常用的人员,并在problem.py和problem2中的solution.py中导入它们,之后可能会出现问题。
我该怎么做才能做到这一点。 我曾经尝试在solution.py
中这样做from .. import template
但失败了。
答案 0 :(得分:1)
对于Python来说,这是一件非常棘手的事情。你试图用template.py做什么更适合第二个包用于常见的东西。只需将MyDev放在PYTHONPATH上。
所以我认为你会有更好的时间:
MyDev/
common/
myutils.py
solutions/
solution1.py
solution2.py
在解决方案1中:
from common.myutils import awesome_func
这可以解释为什么它不适合你:
How to do relative imports in Python?
PEP8也有一些使用导入的好样式指南。基本上,用我自己的话来说,除非你为社区开发一个大包装,其中复杂性是必要的,进口开始变得过于冗长绝对进口是可行的。
使用相对导入的代码库的一个很好的例子是SQLAlchemy。
答案 1 :(得分:0)
您可以执行以下操作:
import sys
然后:sys.path.append('../')
如果您现在导入template
,它应该可以正常工作。