2017-09-07 8 views
0

私はいくつかの共有ファイルを使用する必要がある複数のpythonプロジェクトを持っていますが、これをどのように行うかは分かりません。python:他のディレクトリのファイルをプロジェクトにインクルードする

私はちょうどpyhton作業ディレクトリにファイルをコピーする場合、それはして正常に動作します:

from HBonds import calculateHBondsForSeveralReplicas, compareSameShapeHBMatrices, calculateHBonds 

しかし、私はそれをコピーする必要はありません。それはこのようにそれを行うには理にかなって(しかし、それは動作しません)私にとっては/ home/B /データ/ pythonWorkspace/utilに/ HBonds

:私はからそれを含めたい

方法
from /home/b/data/pythonWorkspace/util/HBonds/HBonds.py import calculateHBondsForSeveralReplicas, compareSameShapeHBMatrices, calculateHBonds 

私はこれをすることができますか?

+2

https://docs.python.org/3/tutorial/modules.html#the-module-search-path – L3viathan

+2

https://stackoverflow.com/questions/67631/how-to-import- a-module-given-the-full-path?rq = 1 – VBB

+3

[完全なパスを指定してモジュールをインポートする方法]の複製が可能ですか?(https://stackoverflow.com/questions/67631/how-to-import- a-module-given-the-full-path) – MatsLindh

答えて

0

サードパーティのライブラリの場合は、システムのsite-packagesまたはvirtualenvのいずれかにストック方法をインストールすることをお勧めします。

稼働しているマシンで積極的に開発しているプロジェクトでは、PYTHONPATHにルートディレクトリを追加して、どこからでもimport <top_level_module>.<submodule>.<etc>できるようにしてください。 That's what we did at my previous occupation.主なプラスは、簡単なコードベースのアップデートとスイッチです。 relative importsもう1つの方法は、パッケージ内の参照を意図しているため、どこにでもパッケージの名前を繰り返す必要はありません。他の多くの無関係なコードの部分が同じモジュールを使用している場合は、共有パーツをすべてのパッケージに依存する別のパッケージにする方が便利でしょう。

0

前回の回答で指摘されていたとおり、PYTHONPATHにそのディレクトリへのパスが含まれていることを確認する必要があります。

また、もっと奇妙な方法を使用することもできます。このようなコードで実行時に利用できるようにすることができます。

import os 
import sys 

folder = os.path.dirname('/home/b/data/pythonWorkspace/util/') 

if dossier not in sys.path: 
    sys.path.append(folder) 

from HBonds import HBonds 
関連する問題