このようなものを適切に書くにはどうすればよいですか:
from ../lib.model import mymodel
ツリーは次のとおりです。
lib----->model---->mynodel.py
|
|----->myscript--->myscript.py
このようなものを適切に書くにはどうすればよいですか:
from ../lib.model import mymodel
ツリーは次のとおりです。
lib----->model---->mynodel.py
|
|----->myscript--->myscript.py
libがパッケージの場合、モジュールとして実行し、次のようmyscriptにインポートします。mymodel
from ..model import mymodel # relative import
または:
from lib.model import mymodel # absolute import
myscript.pyパッケージ内のモジュールとして実行するlibには、次のいずれかを実行します。
libそのインポートを含むフォルダーでプログラムを実行しますlib.myscript.myscriptmyscript.pyを含むフォルダーからモジュールとして実行しますlib。python -m lib.myscript.myscriptスクリプトが使用している場合は、使用してプロジェクトの使用ファイルをlib作成できますsetup.pysetuptools
setuptoolsdevelopコマンドを使用すると、プロジェクトの「開発モード」バージョンが作成され、Python パスに配置されます。そうすれば、他の python パッケージを使用するのと同じように簡単に使用できます。
setup.py は次のように単純にすることができます。
from setuptools import setup, find_packages
setup(
name = "lib",
version = "0.1dev",
packages = find_packages(),
)
次に、次のようにプロジェクトで開発できます
python setup.py develop
パッケージを任意のスクリプトにインポートできるようになりました
from lib.model import model
から呼び出すと仮定しますmyscript.py。
これを試して:
import sys
sys.path.insert(0, '../model/')
import mynodel
mynodelはおそらくmymodel、あなたの投稿でタイプミスをしたと思います。
imprt ステートメントに拡張子を付けないでください。
sys.pathPython がライブラリ ファイルを探すパスのリストです。必要なディレクトリへの相対パスを追加するだけです。リストの先頭に配置することで、python が最初に指定されたパスでファイルを検索するようになります (たとえば、同じ名前のライブラリがあり、ファイルが優先されます)。
treeさらに、 (Linux およびcmd(Windows) コマンド)の出力を提供すると便利な場合があります。これにより、標準化された出力が得られます。