考虑以下在PyDev中创建的Python项目:
├── algorithms
│ ├── __init__.py
│ └── neighborhood
│ ├── __init__.py
│ ├── neighbor
│ │ ├── connector.py
│ │ ├── __init__.py
│ │ ├── manager.py
│ │ └── references.py
│ ├── neighborhood.py
│ ├── tests
│ │ ├── fixtures
│ │ │ └── neighborhood
│ │ ├── __init__.py
│ └── web
│ ├── __init__.py
│ └── service.py
├── configuration
│ ├── Config.py
│ └── __init__.py
├── __init__.py
└── webtrack
|- teste.py
├── .gitignore
├── __init__.py
├── manager
├── Data.py
├── ImportFile.py
└── __init__.py
我们一直在尝试将模块从一个文件夹导入到另一个文件夹,但一直没有成功,例如:
from algorithms.neighborhood.neighbor.connector import NeighborhoodConnector
这将产生结果:
Traceback (most recent call last):
File "teste.py", line 49, in <module>
from algorithms.neighborhood.neighbor.connector import NeighborhoodConnector
ImportError: No module named algorithms.neighborhood.neighbor.connector
我们尝试将其路径添加到sys.path变量中,但没有成功。
我们还尝试使用os.walk将所有路径插入PATH变量中,但仍然出现相同的错误,尽管我们检查了PATH是否包含查找模块的路径。
我们正在使用Python 2.7在Linux Ubuntu 13.10上运行。
我们可能做错了什么吗?
提前致谢!
import algorithms.neighborhood.neighbor.connector
失败了吗?import algorithms.neighborhood.neighbor
、import algorithms.neighborhood
和import algorithms
呢? - BrenBarnsys.path
中?如果是,那么你应该能够使用绝对导入,如:from your_package.algorithms.neighborhood.neighbor.connector import NeighborhoodConnector
。或者,如果你正确执行了脚本(使用正确设置的sys.path
和-m
,或者使用从顶层文件夹开始的相对路径),你应该能够使用显式的相对导入:from ..algorithms.neighborhood.neighbor.connector import NeighborhoodConnector
。 - Blckknght