タグ付けされた質問 「python-import」

Pythonでのモジュールのインポートに関する質問

25
別のフォルダからファイルをインポートする
次のフォルダ構造があります。 application/app/folder/file.py にある別のPythonファイルのfile.pyからいくつかの関数をインポートしたい application/app2/some_folder/some_file.py 私はもう試した from application.app.folder.file import func_name 他にもさまざまな試みがありましたが、これまでは適切にインポートすることができませんでした。これどうやってするの?


19
他のPythonファイルをインポートする方法は?
Pythonで他のファイルをインポートするにはどうすればよいですか? どのように特定のpythonファイルを正確にインポートできますimport file.pyか? 特定のファイルではなくフォルダをインポートするにはどうすればよいですか? ユーザー入力に基づいて、実行時にPythonファイルを動的にロードしたい。 ファイルから特定のパーツを1つだけロードする方法を知りたい。 たとえば、main.py私は持っています: from extra import * これにより、のすべての定義が得られますextra.pyが、必要なのは単一の定義だけです。 def gap(): print print 私はに何を追加するimportだけで取得する声明gapからextra.py?


22
相対パスからモジュールをインポートする
相対パスを指定してPythonモジュールをインポートするにはどうすればよいですか? たとえば、dirFoocontains Foo.pyおよびdirBar、dirBarcontainsのBar.py場合、どのようにインポートBar.pyしFoo.pyますか? ここに視覚的な表現があります: dirFoo\ Foo.py dirBar\ Bar.py Fooを含めたいBarが、フォルダ階層の再構築はオプションではありません。

17
__init__.pyでも「非パッケージでの相対インポートの試み」を修正する方法
次のディレクトリ構造で、PEP 328をフォローしようとしています。 pkg/ __init__.py components/ core.py __init__.py tests/ core_test.py __init__.py でcore_test.py、私は、次のimport文を持っています from ..components.core import GameLoopEvents しかし、実行すると次のエラーが発生します。 tests$ python core_test.py Traceback (most recent call last): File "core_test.py", line 3, in <module> from ..components.core import GameLoopEvents ValueError: Attempted relative import in non-package 周りを検索すると、「__ init__.pyでも相対パスが機能しない」と「相対パスからモジュールをインポートする」が見つかりましたが、役に立ちませんでした。 ここで見逃しているものはありますか?

10
Python 3での相対インポート
同じディレクトリ内の別のファイルから関数をインポートしたい。 時々それは私のためにうまくfrom .mymodule import myfunctionいきますが、時々私は次のものを得ます: SystemError: Parent module '' not loaded, cannot perform relative import 時々それはで動作しますfrom mymodule import myfunctionが、時々私はまた得ます: SystemError: Parent module '' not loaded, cannot perform relative import ここでは論理が理解できず、説明もありませんでした。これは完全にランダムに見えます。 誰かがこのすべての背後にある論理は何であるかを私に説明できますか?

13
同じディレクトリまたはサブディレクトリ内にクラスをインポートするにはどうすればよいですか?
すべての.pyファイルを格納するディレクトリがあります。 bin/ main.py user.py # where class User resides dir.py # where class Dir resides 私はからのクラスを使用したいuser.pyとdir.pyをしてmain.py。 これらのPythonクラスをmain.pyにインポートするにはどうすればよいですか? さらに、user.pyがサブディレクトリにあるUser場合、どのようにクラスをインポートできますか? bin/ dir.py main.py usr/ user.py

18
親フォルダーからのモジュールのインポート
Python 2.5を実行しています。 これは私のフォルダツリーです: ptdraft/ nib.py simulations/ life/ life.py (私__init__.pyは各フォルダにもありますが、読みやすくするためにここでは省略しています) nibモジュール内からモジュールをインポートするにはどうすればよいlifeですか?sys.pathをいじる必要なしにそれが可能であることを望んでいます。 注:実行中のメインモジュールはptdraftフォルダー内にあります。


11
名前を文字列として指定してモジュールをインポートする方法は?
たとえば、コマンドとして引数を取るPythonアプリケーションを作成しています。 $ python myapp.py command1 アプリケーションを拡張可能にする、つまり、メインのアプリケーションソースを変更することなく、新しいコマンドを実装する新しいモジュールを追加できるようにしたいと考えています。ツリーは次のようになります。 myapp/ __init__.py commands/ __init__.py command1.py command2.py foo.py bar.py したがって、アプリケーションで実行時に使用可能なコマンドモジュールを見つけて適切なものを実行する必要があります。 Pythonは__import__関数を定義します。この関数はモジュール名の文字列を取ります。 __import __(name、globals = None、locals = None、fromlist =()、level = 0) 関数はモジュール名をインポートし、パッケージコンテキストで名前を解釈する方法を決定するために、指定されたグローバルとローカルを使用する可能性があります。fromlistは、名前で指定されたモジュールからインポートする必要があるオブジェクトまたはサブモジュールの名前を示します。 ソース:https : //docs.python.org/3/library/functions.html# import だから現在私は次のようなものがあります: command = sys.argv[1] try: command_module = __import__("myapp.commands.%s" % command, fromlist=["myapp.commands"]) except ImportError: # Display error message command_module.run() これは問題なく機能します。このコードで実行していることを達成するためのより慣用的な方法があるのではないかと思っています。 特に卵や拡張ポイントを使いたくありません。これはオープンソースプロジェクトではないため、「プラグイン」が存在するとは思わない。重要なのは、メインアプリケーションコードを簡略化し、新しいコマンドモジュールが追加されるたびにコードを変更する必要をなくすことです。

15
ImportError:名前Xをインポートできません
メイン、ベクター、エンティティ、物理学という4つの異なるファイルがあります。私はそれがエラーがあるところだと思うので、私はすべてのコードを投稿するのではなく、インポートだけをします。(必要に応じて、さらに投稿できます) メイン: import time from entity import Ent from vector import Vect #the rest just creates an entity and prints the result of movement エンティティ: from vector import Vect from physics import Physics class Ent: #holds vector information and id def tick(self, dt): #this is where physics changes the velocity …

15
Pythonで相対インポートを行う方法は?
このディレクトリ構造を想像してください: app/ __init__.py sub1/ __init__.py mod1.py sub2/ __init__.py mod2.py 私はコーディングしてmod1おり、から何かをインポートする必要がありmod2ます。どうすればよいですか? 試しましたfrom ..sub2 import mod2が、「パッケージ以外での相対インポートの試み」が発生しました。 私はググったが「sys.path操作」ハックしか見つけなかった。きれいな方法はありませんか? 編集:すべての私__init__.pyのは現在空です EDIT2:SUB2は、サブパッケージ(全体で共有されているクラス含まれているので、私はこれをやろうとしているsub1、subXなど)。 Edit3:私が探している動作はPEP 366で説明されているものと同じです(John Bに感謝)

11
サブディレクトリからファイルをインポートしますか?
私はと呼ばれるファイル持っているtester.pyに位置し、/project。 /projectには、というサブディレクトリlibがあり、次のファイルがありますBoxTime.py。 /project/tester.py /project/lib/BoxTime.py からインポートBoxTimeしたいtester。私はこれを試しました: import lib.BoxTime その結果: Traceback (most recent call last): File "./tester.py", line 3, in <module> import lib.BoxTime ImportError: No module named lib.BoxTime BoxTimeサブディレクトリからインポートする方法はありますか? 編集 これ__init__.pyが問題でしたが、BoxTimeとして参照するlib.BoxTimeか使用することを忘れないでください: import lib.BoxTime as BT ... BT.bt_function()

28
Pythonエラー“ ImportError:No module named”
Pythonはローカルディレクトリにインストールされます。 私のディレクトリツリーは次のようになります。 (local directory)/site-packages/toolkit/interface.py 私のコードはここにあります: (local directory)/site-packages/toolkit/examples/mountain.py この例を実行するには、を記述python mountain.pyし、コードに次のように記述します。 from toolkit.interface import interface そして私はエラーを受け取ります: Traceback (most recent call last): File "mountain.py", line 28, in ? from toolkit.interface import interface ImportError: No module named toolkit.interface 私はすでにチェックsys.pathしており、そこにディレクトリがあり/site-packagesます。また、__init__.py.binこれがパッケージであることをPythonに示すために、toolkitフォルダーにファイルがあります。また__init__.py.bin、examplesディレクトリにもがあります。 ファイルがにあるときにPythonがファイルを見つけられない理由はわかりませんsys.path。何か案は?権限の問題でしょうか?実行権限が必要ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.