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パッケージインデックスに追加することもできます。パイパイ。