【发布时间】:2016-12-10 04:05:54
【问题描述】:
我想使用 Python v3.5.2,但我的笔记本电脑也安装了 Python 2.7.10(它是 MacBook)。我有一个简单的 Python 项目结构,如下所示。请注意,由于我使用 IntelliJ 作为 IDE(例如 *.pyc 文件和 *.iml 文件),可能会显示一些工件。
. ├── io │ ├── __init__.py │ ├── __init__.pyc │ ├── __pycache__ │ │ └── __init__.cpython-35.pyc │ └── 我 │ ├── __init__.py │ ├── __init__.pyc │ └── 型号 │ ├── __init__.py │ ├── __init__.pyc │ ├── car.py │ └── car.pyc ├── start.py └── test-python.iml我的start.py 脚本如下所示。
from io.me.model.car import Car
car = Car("honda", "civic", 2005)
print(car.model)
在终端中,如果我输入python3 start.py,则会收到以下错误。
但是,我决定输入python start.py,我确实得到了输出:civic。
关于我在这里做错了什么有什么想法吗?
另外,是否有关于 Python 项目结构的指南?来自 Java 世界,我想知道对于 Python 项目的结构(例如典型的 Java Maven 项目)是否有推荐的最佳实践或高度评价的方法。
- 我将来源放在哪里?
- 我在哪里进行测试?
- 是否有用于 Python 的构建工具(如 Java 的 Maven)可以促进和指导目录结构?
【问题讨论】:
-
将
io重命名为其他名称。可能是它与内置的io包冲突。 -
@MohammadYusufGhazi 您的建议有效。所以,正如我所说,我来自 Java 世界,我的问题是,仅仅因为已经有一个使用
io的包,没有其他人可以创建以该命名空间开头的包吗?例如io.mydomain.project?在 Java 中,您可以共享一个io命名空间,尽管您希望获得更具体的信息,但可以使用io。 -
尝试像这样导入。
from .io.me.model.car import Car。看看这是否有效。它将从当前目录导入io包。
标签: python python-2.7 python-3.x python-module