1

私の開発 (Win7) マシンでは、アプリが正常に動作します。フォルダー構造は次のようになります (実行されるスクリプトは以下の run.py です)。

package1/
  __init__.py
  run.py
  ..

アプリ内には、次のようなことを行うモジュールがいくつかあります

 import app from package1

これはうまくいきます。

ただし、Linux マシンにデプロイしようとして、まったく同じファイルを実行すると、エラーが発生します。

  ImportError: No module named package1

このスクリプトが実行されているときに、両方のマシンの sys.path を調べました。Windows マシンの最初の 2 行は次のとおりです。

C:\\Users\\USERNAME\\IdeaProjects\\PROJ_NAME\\package1
C:\\Users\\USERNAME\\IdeaProjects\\PROJ_NAME

一方、Linux にはこれしかありません。

/home/username/webapps/PROJ_NAME/package1

問題は、2 行目が欠落していることだと認識しています。しかし、なぜそれが欠けているのですか?私は何が欠けていますか?フォルダー構造を間違って構築しましたか?

4

1 に答える 1

0

これはくだらない解決策であり、私は好きではありませんが、うまくいきます。これをrun.pyに追加しました

# Fixing the python path
import sys
import os

file_location = os.path.dirname(os.path.abspath(__file__))
project_dir = os.path.abspath(os.path.join(file_location, os.pardir))
if not project_dir in sys.path:
    sys.path.insert(0, project_dir)
于 2013-09-03T19:55:08.673 に答える