Python v3.5.2で作業したいが、私のラップトップにはPython 2.7.10がインストールされている(MacBook)。私は次のような単純なPythonプロジェクト構造を持っています。 IntelliJをIDEとして使用しているため、アーチファクトが表示されることがあります(例:* .pycファイルと* .imlファイル)。Python 3でインポートエラーが発生するが、Python 2で動作する
. ├── 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
私のstart.py
スクリプトは次のようになります。
from io.me.model.car import Car
car = Car("honda", "civic", 2005)
print(car.model)
端末では、と入力すると、次のエラーが表示されます。
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 start.py
を入力することを決めたと私は実際に出力得るか:civic
を。
私がここで間違っていることに関するアイデアはありますか?
また、Pythonのプロジェクト構造に関するガイドラインはありますか? Javaの世界から来て、Pythonプロジェクトの構造(たとえば、典型的なJava Mavenプロジェクトのような)に推奨されるベストプラクティスまたは非常に意見の多いアプローチがあるかどうかを知りたいと思います。
- ソースはどこに配置しますか?
- テストはどこに入れますか?
- Python用のディレクトリ構造を容易にし、ガイドするビルドツール(Maven for Javaなど)はありますか?
名前を 'io'に変更します。組み込みの 'io'パッケージと衝突するかもしれません。 – MYGz
@MohammadYusufGhaziあなたの提案はうまくいきます。だから、私が述べたように、私はJavaの世界から来ています。私の質問は、既に 'io'を使っているパッケージがあるから、誰もその名前空間で始まるパッケージを作ることができないのですか?例えば'io.mydomain.project'? Javaでは、 'io'名前空間を共有することはできますが、それよりも具体的にしたいのですが、' io'を使っても問題ありません。 –
このようにインポートしてみてください。 '.io.me.model.car import car'から。それが動作するかどうかを確認します。現在のディレクトリから 'io'パッケージをインポートします。 – MYGz