2017-07-18 9 views
0

依存関係をインポートするために以下のソリューションを使用しました。 Pycharmでコードを実行してもターミナルでは実行しないと、このソリューションが動作することがわかりました。 端末のエラーメッセージは "graphics.primitiveが見つかりません"です。 私はMacとPython 3.5を使用しています。 ターミナルとPycharmの動作が異なるのはなぜですか? 両方のソリューションをどのように動作させることができますか?あなたは、モジュールの階層的な集合からなるパッケージにあなたのコードを整理したいモジュール 問題依存関係のインポートは、Pycahrmではなくターミナルで動作しますか?

の階層パッケージを作る


http://chimera.labs.oreilly.com/books/1230000000393/ch10.html#_solution_169

ソリューション

パッケージ構造の作成は簡単です。ファイルシステム上であなたのコードを整理し、すべてのディレクトリが .pyファイルを定義していることを確認してください。たとえば:

graphics/ 
    __init__.py 
    primitive/ 
     __init__.py 
     line.py 
     fill.py 
     text.py 
    formats/ 
     __init__.py 
     png.py 
     jpg.py 

あなたはこれをしたら、あなたは次のような様々なimport文を実行することができるはずです。

import graphics.primitive.line 
from graphics.primitive import line 
import graphics.formats.jpg as jpg 

答えて

1

あなたはグラフィックパッケージが入っていることを確認する必要がありますPythonの検索パス。

import sys  
sys.path.extend(['/Users/hackworth/Development/graphics_parent_dir', '/Applications/PyCharm.app/Contents/helpers/pycharm', '/Applications/PyCharm.app/Contents/helpers/pydev']) 

をあなたが適切なパスで/Users/hackworth/graphics_parent_dirを交換し、あなたのコードで同じことを行うことができます、またはあなたはPYTHONPATH環境変数にgraphics_parent_dirへの完全なパスを含めることができます。PyCharmは、次のようにsys.pathを拡張することによってこれを行います。詳細については、Python documentationを参照してください。

もう1つの方法は、システムでデフォルトで検索される場所にgraphicsパッケージを配置することです。

関連する問題