0

このようなものを適切に書くにはどうすればよいですか:

from ../lib.model import mymodel

ツリーは次のとおりです。

lib----->model---->mynodel.py
 |
 |----->myscript--->myscript.py
4

3 に答える 3

1

libがパッケージの場合、モジュールとして実行し、次のようmyscriptにインポートします。mymodel

from ..model import mymodel    # relative import

または:

from lib.model import mymodel    # absolute import

myscript.pyパッケージ内のモジュールとして実行するlibには、次のいずれかを実行します。

  • libそのインポートを含むフォルダーでプログラムを実行しますlib.myscript.myscript
  • myscript.pyを含むフォルダーからモジュールとして実行しますlibpython -m lib.myscript.myscript
于 2013-09-19T00:48:25.313 に答える
1

スクリプトが使用している場合は、使用してプロジェクトの使用ファイルを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

于 2013-09-19T01:03:11.463 に答える
0

から呼び出すと仮定しますmyscript.py

これを試して:

import sys
sys.path.insert(0, '../model/')
import mynodel

mynodelはおそらくmymodel、あなたの投稿でタイプミスをしたと思います。

imprt ステートメントに拡張子を付けないでください。

sys.pathPython がライブラリ ファイルを探すパスのリストです。必要なディレクトリへの相対パスを追加するだけです。リストの先頭に配置することで、python が最初に指定されたパスでファイルを検索するようになります (たとえば、同じ名前のライブラリがあり、ファイルが優先されます)。

treeさらに、 (Linux およびcmd(Windows) コマンド)の出力を提供すると便利な場合があります。これにより、標準化された出力が得られます。

于 2013-09-19T00:39:32.970 に答える