我一直在努力使用python导入......我喜欢这种语言,但导入机制让我发疯。我的编码时间用于调试导入无效的原因?!?!
只有我在努力奋斗吗?
这是我最近的问题:
文件夹结构(src文件夹):
.:
total 16
drwxr-xr-x 1 xy None 0 Dec 22 14:33 private
drwxr-xr-x 1 xy None 0 Dec 22 14:36 public
-rw-r--r-- 1 xy None 22 Dec 22 14:54 __init__.py
./private:
total 16
drwxr-xr-x 1 xy None 0 Dec 22 14:51 models
drwxr-xr-x 1 xy None 0 Dec 22 15:52 utils
-rw-r--r-- 1 xy None 76 Dec 25 12:05 __init__.py
./private/models:
total 16
drwxr-xr-x 1 xy None 0 Dec 22 14:51 environment
-rw-r--r-- 1 xy None 28 Dec 25 12:04 __init__.py
./private/models/environment:
total 32
drwxr-xr-x 1 xy None 0 Dec 22 14:51 territories
-rw-r--r-- 1 xy None 47 Dec 22 17:08 __init__.py
-rw-r--r-- 1 xy None 88 Dec 22 18:02 ship.py
./private/models/environment/territories:
total 64
-rw-r--r-- 1 xy None 393 Dec 22 16:22 territory.py
-rw-r--r-- 1 xy None 115 Dec 22 16:26 own.py
-rw-r--r-- 1 xy None 69 Dec 22 18:07 __init__.py
-rw-r--r-- 1 xy None 408 Dec 25 12:25 location.py
./private/utils:
total 32
-rw-r--r-- 1 xy None 20 Dec 22 15:58 __init__.py
-rw-r--r-- 1 xy None 182 Dec 22 16:00 utils.py
./public:
total 0
-rw-r--r-- 1 xy None 0 Dec 22 14:36 index.py
我正在使用python 3.4。我的问题是,如何在location.py中导入private.models.environment.ship。
我试过这个:
sys.path.append(os.path.join(os.path.abspath(os.path.join(__file__)).split('src')[0], 'src'))
import private.models as models
但是我收到错误消息“没有这样的模块模型”......很烦人。
答案 0 :(得分:0)
如果location.py只是一个模块(您不能将其用作主程序),则可以通过相对导入解决您的问题:https://www.python.org/dev/peps/pep-0328/
在location.py中你可以写
from .. import ship
就是这样!