2017-01-27 6 views
0

私は今日実行中の本当に奇妙な状況で、誰かが何らかの光を照らすことができると願っています。 PyCharmでうまくいくプロジェクトを完成させました。コマンドラインからプロジェクトを呼び出すようにしようとしたときしかし、これは私が受けていますエラーです:私のプロジェクト内のパッケージのPythonインポートエラーを取得する

[[email protected] ~]# python /opt/gsnworkflow/GSNEventLoop/EventLoop.py 
Traceback (most recent call last): 
    File "/opt/gsnworkflow/GSNEventLoop/EventLoop.py", line 6, in <module> 
    from Modules import FileOperations 
ImportError: No module named Modules 

をここでは私のファイルレイアウトです:

/opt/gsnworkflow/ 
|-- __init__.py 
|-- GSNEventLoop/ 
| |-- __init__.py 
| `-- EventLoop.py 
`-- Modules/ 
    |-- __init__.py 
    |-- Configuration.py 
    |-- Logging.py 
    |-- FileOperations.py 
    `-- Database.py 

私は別のsys.path.appendコマンドの束を試してみましたたとえば、次のようになります。

sys.path.append('/opt/gsnworkflow/') 
sys.path.append('/opt/gsnworkflow/Modules/') 
sys.path.append('/opt/gsnworkflow/GSNEventLoop/') 

これらのオプションはいずれも私の問題を一切解決しておらず、私の気分は終わりです。誰かが私が見逃したり間違って行ったりしていることが明らかな何かを見ていますか?これを理解できる人は本当にありがたいです。ありがとう!

+1

もしあなたがpython 3を使っているなら、親モジュールを呼び出すためにドット構文を使ってみてください: "from ..Modules import FilesOperations" – MaLiN2223

+0

私はそれを試みましたが、私は同じ結果を得ています。 (私はpython3を使用しています)。他のアイデア?私はそれを試した後、次のエラーを取得していない午前 –

答えて

1

あなたがしようとしているのは、GSNEventLoopのモジュールモジュールを呼び出すことです。 モジュールをアップにして、モジュールを呼び出す必要があります。

これは、それはPython 3で実行される方法である。

from ..Modules import FilesOperations 

Further readingとイントラパッケージは、それはpythonの2にどのように行われるかについて

を参照の見て、私はこれを考え出しTHIS

+0

: [ルート@ vodgsnxf-PO-A2P gsnworkflow]#パイソン./GSNEventLoop/EventLoop.py トレースバック(最新の呼び出しの最後): ファイル」./GSNEventLoop/EventLoop .py "、行6、in from .. Module import FileOperations ValueError:非パッケージでの相対インポートを試みました –

+0

これはなぜ難しいのですか...前にこのような問題はありませんでした。 –

+0

@AnthonyHopkinsなぜあなたはa)rootですかb)パッケージを通過するのではなく、直接EventLoop.pyを呼び出そうとしていますか? – Rishav

0

を見ますでる。私の主な機能はGSNEventLoopディレクトリ内にありました。私はそれをPythonパッケージの根元に移動してしまいました。すべてのインポートが期待通りに機能します。だから今、私の構造は次のようになります。

  • は/ opt/gsnworkflow/
    • __init__.py
    • /GSNEventLoop/
      • __init__.py
      • EventLoop.py
    • /モジュール/
      • __init__.py
      • Configuration.py
      • Logging.py
      • FileOperations.py
      • Database.py
    • GSNMain.py < - この男はそれを実行されるコードが含まれていますイベントループを呼び出します。予想通り

私はGSNMain.pyファイルを確立したら、すべての輸入品と機能が動作します。これをサポートするために早く早く手を伸ばした人に感謝します。私はStackOverflowが大好きです。

関連する問題