Import error in Python 3 but works with Python 2
我想使用python v3.5.2,但我的笔记本电脑也安装了python 2.7.10(它是一个MacBook)。我有一个简单的python项目结构,如下所示。注意,可能会显示一些工件,因为我使用Intellij作为IDE(例如*.pyc文件和*.iml文件)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | . ├── io │ ├── __init__.py │ ├── __init__.pyc │ ├── __pycache__ │ │ └── __init__.cpython-35.pyc │ └── me │ ├── __init__.py │ ├── __init__.pyc │ └── model │ ├── __init__.py │ ├── __init__.pyc │ ├── car.py │ └── car.pyc ├── start.py └── test-python.iml |
我的
1 2 3 4 | from io.me.model.car import Car car = Car("honda","civic", 2005) print(car.model) |
号
在终端中,如果我输入
1 2 3 4 | Traceback (most recent call last): File"start.py", line 1, in from io.me.model.car import Car ImportError: No module named 'io.me'; 'io' is not a package |
然而,我决定输入
对我在这里做错了什么有什么看法吗?
另外,有没有关于Python项目结构的指导方针?来自Java世界,我想知道是否有一个推荐的最佳实践或一个高度自以为是的方法到Python项目的结构(例如,像一个典型的Java Maven项目)。
- 我应该把我的资料放在哪里?
- 我应该把测试放在哪里?
- 是否有一个Python的构建工具(如Maven for Java),方便和指导目录结构?
小精灵
python中有一个名为io的内置模块。同时在文件夹IO所在的目录中添加
输出(单位:python2)
1 2 3 4 5 6 7 | >>> >>> import io >>> >>> >>> dir(io) ['BlockingIOError', 'BufferedIOBase', 'BufferedRWPair', 'BufferedRandom', 'BufferedReader', 'BufferedWriter', 'BytesIO', 'DEFAULT_BUFFER_SIZE', 'FileIO', 'IOBase', 'IncrementalNewlineDecoder', 'OpenWrapper', 'RawIOBase', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'StringIO', 'TextIOBase', 'TextIOWrapper', 'UnsupportedOperation', '__all__', '__author__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_io', 'abc', 'open'] >>> |
python3产量
1 2 3 4 5 6 7 8 | Python 3.4.5 (default, Oct 10 2016, 14:41:48) [GCC 5.4.0] on cygwin Type"help","copyright","credits" or"license" for more information. >>> import io >>> >>> dir(io) ['BlockingIOError', 'BufferedIOBase', 'BufferedRWPair', 'BufferedRandom', 'BufferedReader', 'BufferedWriter', 'BytesIO', 'DEFAULT_BUFFER_SIZE', 'FileIO', 'IOBase', 'IncrementalNewlineDecoder', 'OpenWrapper', 'RawIOBase', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'StringIO', 'TextIOBase', 'TextIOWrapper', 'UnsupportedOperation', '__all__', '__author__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_io', 'abc', 'open'] >>> |
号
将您的