Pythonで自分のモジュールをインポートできない 質問する

Pythonで自分のモジュールをインポートできない 質問する

Python でモジュールのインポートがどのように機能するかを理解するのに苦労しています (他の言語でもこれまで行ったことがありません)。

たとえば、次のようなものがあるとします。

myapp/__init__.py
myapp/myapp/myapp.py
myapp/myapp/SomeObject.py
myapp/tests/TestCase.py

今、私は次のようなものを取得しようとしています:

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject

myappしかし、Python はそれがモジュールであることを認識できないので、間違いなく何か間違っています。

ImportError: No module named myapp

ベストアンサー1

SomeObjectあなたの場合は、myapp.pyとTestCase.pyスクリプトからインポートしようとしているようです。myapp.pyから、

import SomeObject

同じフォルダにあるため、TestCase.pyの場合は、

from ..myapp import SomeObject

しかし、これはパッケージから TestCase をインポートしている場合にのみ機能します。 を直接実行したい場合はpython TestCase.py、パスを変更する必要があります。これは Python 内で実行できます。

import sys
sys.path.append("..")
from myapp import SomeObject

ただし、これは一般的には推奨されません。

一般的に、他の人にPythonパッケージを使ってもらいたい場合は、ディストリビューションセットアップスクリプトを作成します。そうすれば、誰でも次のようなコマンドを使用してパッケージを簡単にインストールできpython setup.py install、マシン上のどこからでも利用できるようになります。パッケージを真剣に考えている場合は、Pythonパッケージインデックスに追加することもできます。パイパイ

おすすめ記事