1

在我的开发(Win7)机器上,我的应用程序运行良好。文件夹结构如下所示(正在运行的脚本是下面的 run.py):

package1/
  __init__.py
  run.py
  ..

在应用程序内部,有一些模块可以执行以下操作

 import app from package1

哪个工作正常。

但是,当我尝试部署到 linux 机器并运行完全相同的文件时,出现错误:

  ImportError: No module named package1

运行此脚本时,我查看了两台机器的 sys.path。windows机器的前两行是这些:

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

而linux只有这个:

/home/username/webapps/PROJ_NAME/package1

我认识到问题是缺少第二行。但它为什么不见了?我错过了什么?我是否建立了错误的文件夹结构?

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 回答